String.raw dalam kod sumber CSS Tailwind.

Patricia Arquette
Lepaskan: 2024-10-08 06:30:30
asal
1130 orang telah melayarinya

Dalam artikel ini, kami menganalisis penggunaan String.raw dalam kod sumber Tailwindcss.

String.raw

Dokumentasi MDN mengatakan bahawa:

“Kaedah statik String.raw() ialah fungsi teg bagi literal templat.

Ini serupa dengan awalan r dalam Python, atau awalan @ dalam C# untuk literal rentetan.

Ia digunakan untuk mendapatkan bentuk rentetan mentah literal templat — iaitu, penggantian

(cth. ${foo}) diproses, tetapi jujukan melarikan diri (cth. n) tidak.“

Contoh 1:

Contoh di bawah dipilih daripada MDN:

// Create a variable that uses a Windows
// path without escaping the backslashes:
const filePath = String.raw`C:\Development\profile\aboutme.html`;
console.log(`The file was uploaded from: ${filePath}`);
// Expected output: "The file was uploaded from: C:\Development\profile\aboutme.html"
Salin selepas log masuk

Hasil pelaksanaan contoh di atas ini kelihatan seperti ini:

> "The file was uploaded from: C:\Development\profile\aboutme.html"
Salin selepas log masuk

Contoh 2:

Jika anda menjalankan contoh yang sama tanpa String.raw menggunakan kod di bawah:

// Create a variable that uses a Windows
// path without escaping the backslashes:
const filePath = `C:\Development\profile\aboutme.html`;
console.log(`The file was uploaded from: ${filePath}`);
// Expected output: "The file was uploaded from: C:\Development\profile\aboutme.html"
Salin selepas log masuk

Keputusan kelihatan seperti ini:

> "The file was uploaded from: C:Developmentprofileaboutme.html"
Salin selepas log masuk

Contoh 3:

Jika anda menjalankan contoh yang sama melibatkan n menggunakan kod di bawah:

const filePathWithoutStringRaw = `\nC:\Development\profile\aboutme.html`;
const filePathWithStringRaw = String.raw`\nC:\Development\profile\aboutme.html`;
console.log("filePathWithoutStringRaw:", filePathWithoutStringRaw)
console.log("*******")
console.log("filePathWithStringRaw:", filePathWithStringRaw)
Salin selepas log masuk

Keputusan kelihatan seperti ini:

> "filePathWithoutStringRaw:" "
C:Developmentprofileaboutme.html"
> "*******"
> "filePathWithStringRaw:" "\nC:\Development\profile\aboutme.html"
Salin selepas log masuk

String.raw in Tailwind CSS source code.

Cara Tailwindcss menggunakan String.raw:

fail ujian ui.spec.ts memperuntukkan String.raw kepada html dan css.

String.raw in Tailwind CSS source code.

html didapati digunakan dalam banyak ujian yang ditulis dalam ui.spec.ts

Mari kita lihat dengan lebih dekat kod ujian ini:

for (let [classes, expected] of [
 [
 'bg-linear-to-r from-red-500',
 'linear-gradient(to right, rgb(239, 68, 68) 0%, rgba(0, 0, 0, 0) 100%)',
 ],
 [
 'bg-linear-to-r via-red-500',
 'linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgb(239, 68, 68) 50%, rgba(0, 0, 0, 0) 100%)',
 ],
 [
 'bg-linear-to-r to-red-500',
 'linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgb(239, 68, 68) 100%)',
 ],
 [
 'bg-linear-to-r from-red-500 to-blue-500',
 'linear-gradient(to right, rgb(239, 68, 68) 0%, rgb(59, 130, 246) 100%)',
 ],
 [
 'bg-linear-to-r via-red-500 to-blue-500',
 'linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgb(239, 68, 68) 50%, rgb(59, 130, 246) 100%)',
 ],
 [
 'bg-linear-to-r from-red-500 via-green-500 to-blue-500',
 'linear-gradient(to right, rgb(239, 68, 68) 0%, rgb(34, 197, 94) 50%, rgb(59, 130, 246) 100%)',
 ],
 [
 'bg-linear-[to_right,var( - color-red-500),var( - color-green-500),var( - color-blue-500)]',
 'linear-gradient(to right, rgb(239, 68, 68), rgb(34, 197, 94), rgb(59, 130, 246))',
 ],
]) {
 test(`background gradient, "${classes}"`, async ({ page }) => {
   let { getPropertyValue } = await render(
   page,
   html`<div id="x" class="${classes}">Hello world</div>`,
   )
   expect(await getPropertyValue('#x', 'background-image')).toEqual(expected)
 })
}
Salin selepas log masuk

Memang menarik untuk melihat keseluruhan tatasusunan yang ditakrifkan dalam gelung for.

html`<div id="x" class="${classes}">Hello world</div>`,
Salin selepas log masuk

${classes} digantikan dengan item pertama tatasusunan di bawah:

[<br>
 'bg-linear-to-r from-red-500',<br>
 'linear-gradient(to right, rgb(239, 68, 68) 0%, rgba(0, 0, 0, 0) 100%)',<br>
],<br>
Salin selepas log masuk




Tentang kami:

Di Think Throo, kami berada dalam misi untuk mengajar konsep seni bina asas kod lanjutan yang digunakan dalam projek sumber terbuka.

10x kemahiran pengekodan anda dengan mempraktikkan konsep seni bina lanjutan dalam Next.js/React, pelajari amalan terbaik dan bina projek gred pengeluaran.

Kami adalah sumber terbuka — https://github.com/thinkthroo/thinkthroo (Beri kami bintang!)

Kami juga menyediakan perkhidmatan pembangunan web dan penulisan teknikal. Hubungi kami di hello@thinkthroo.com untuk mengetahui lebih lanjut!

Rujukan:

  1. https://github.com/tailwindlabs/tailwindcss/blob/next/packages/tailwindcss/tests/ui.spec.ts

  2. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/raw

  3. https://stackoverflow.com/questions/34772762/what-are-the-actual-uses-of-es6-raw-string-access

Atas ialah kandungan terperinci String.raw dalam kod sumber CSS Tailwind.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan