Heim > Web-Frontend > js-Tutorial > Hauptteil

String.raw im Tailwind CSS-Quellcode.

Patricia Arquette
Freigeben: 2024-10-08 06:30:30
Original
1131 Leute haben es durchsucht

In diesem Artikel analysieren wir die Verwendung von String.raw im Tailwindcss-Quellcode.

String.raw

In der MDN-Dokumentation heißt es:

„Die statische Methode String.raw() ist eine Tag-Funktion von Vorlagenliteralen.

Dies ähnelt dem r-Präfix in Python oder dem @-Präfix in C# für String-Literale.

Es wird verwendet, um die rohe Stringform von Vorlagenliteralen zu erhalten – also Ersetzungen

(z. B. ${foo}) werden verarbeitet, Escape-Sequenzen (z. B. n) jedoch nicht.“

Beispiel 1:

Das folgende Beispiel stammt aus 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"
Nach dem Login kopieren

Das Ausführungsergebnis dieses obigen Beispiels sieht folgendermaßen aus:

> "The file was uploaded from: C:\Development\profile\aboutme.html"
Nach dem Login kopieren

Beispiel 2:

Wenn Sie dasselbe Beispiel ohne String.raw mit dem folgenden Code ausführen:

// 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"
Nach dem Login kopieren

Ergebnis sieht so aus:

> "The file was uploaded from: C:Developmentprofileaboutme.html"
Nach dem Login kopieren

Beispiel 3:

Wenn Sie dasselbe Beispiel mit n ausführen und den folgenden Code verwenden:

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)
Nach dem Login kopieren

Ergebnis sieht so aus:

> "filePathWithoutStringRaw:" "
C:Developmentprofileaboutme.html"
> "*******"
> "filePathWithStringRaw:" "\nC:\Development\profile\aboutme.html"
Nach dem Login kopieren

String.raw in Tailwind CSS source code.

Wie Tailwindcss String.raw verwendet:

ui.spec.ts-Testdatei weist String.raw HTML und CSS zu.

String.raw in Tailwind CSS source code.

HTML wird in vielen in ui.spec.ts geschriebenen Tests verwendet

Schauen wir uns diesen Testcode genauer an:

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)
 })
}
Nach dem Login kopieren

Es ist interessant zu sehen, wie ein ganzes Array in einer for-Schleife definiert wird.

html`<div id="x" class="${classes}">Hello world</div>`,
Nach dem Login kopieren

${classes} wird durch das erste Element des folgenden Arrays ersetzt:

[<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>
Nach dem Login kopieren




Über uns:

Bei Think Throo haben wir die Mission, die fortgeschrittenen Codebasis-Architekturkonzepte zu vermitteln, die in Open-Source-Projekten verwendet werden.

Verzehnfachen Sie Ihre Programmierkenntnisse, indem Sie fortgeschrittene Architekturkonzepte in Next.js/React üben, die Best Practices erlernen und Projekte in Produktionsqualität erstellen.

Wir sind Open Source – https://github.com/thinkthroo/thinkthroo (Geben Sie uns einen Stern!)

Wir bieten auch Webentwicklung und technische Redaktionsdienste an. Kontaktieren Sie uns unter hello@thinkthroo.com, um mehr zu erfahren!

Referenzen:

  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

Das obige ist der detaillierte Inhalt vonString.raw im Tailwind CSS-Quellcode.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage