Heim Web-Frontend js-Tutorial So laden Sie SVG in Webpack

So laden Sie SVG in Webpack

Jun 15, 2018 pm 02:18 PM
webpack

Dieser Artikel stellt hauptsächlich die praktische Methode zum Laden von SVG mit Webpack vor. Jetzt teile ich ihn mit Ihnen und gebe ihn als Referenz.

SVG wird als Standardformat für Vektorgrafiken von den wichtigsten Browsern unterstützt und ist auch zum Synonym für Vektorgrafiken im Web geworden. Die Verwendung von SVG anstelle von Bitmaps in Webseiten hat die folgenden Vorteile:

  1. SVG ist klarer als Bitmaps und beeinträchtigt die Klarheit von Grafiken bei willkürlicher Skalierung nicht. SVG kann das Problem effektiv lösen unscharfer Bilddarstellung auf hochauflösenden Bildschirmen.

  2. Wenn die grafischen Linien relativ einfach sind, ist die Größe der SVG-Datei kleiner als die der Bitmap. Heutzutage, wenn flache Benutzeroberflächen beliebt sind, ist SVG in den meisten Fällen kleiner.

  3. SVG mit den gleichen Grafiken hat eine bessere Renderleistung als die entsprechenden hochauflösenden Grafiken.

  4. SVG verwendet eine mit HTML konsistente XML-Syntaxbeschreibung, die sehr flexibel ist.

Das Zeichentool kann .svg-Dateien einzeln exportieren. Die Importmethode von SVG ähnelt der von Bildern. Sie kann wie folgt direkt in CSS verwendet werden:

body {
 background-image: url(./svgs/activity.svg);
}
Nach dem Login kopieren

Wird auch in HTML verwendet:

<img src="./svgs/activity.svg"/>
Nach dem Login kopieren

Mit anderen Worten, die SVG-Datei kann direkt als Bild verwendet werden, und die Methode ist genau die gleiche wie bei der Verwendung von Bildern. Daher sind die beiden in 3-19 „Laden von Bildern mit File-Loader“ und „URL-Loader“ vorgestellten Methoden für SVG gleichermaßen wirksam. Sie müssen lediglich das Dateisuffix in der Loader-Testkonfiguration in „.svg“ ändern.

module.exports = {
 module: {
  rules: [
   {
    test: /\.svg/,
    use: ['file-loader']
   }
  ]
 },
};
Nach dem Login kopieren

Da SVG eine Datei im Textformat ist, gibt es neben den beiden oben genannten Methoden noch andere Methoden, die im Folgenden einzeln erläutert werden.

Raw-Loader verwenden

Raw-Loader kann den Inhalt der Textdatei lesen und ihn in JavaScript oder CSS einfügen.

Schreiben Sie dies beispielsweise in JavaScript:

import svgContent from './svgs/alert.svg';
Nach dem Login kopieren

Der Ausgabecode nach der Raw-Loader-Verarbeitung lautet wie folgt:

module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\"... </svg>" // 末尾省略 SVG 内容
Nach dem Login kopieren

Das heißt, der Inhalt von svgContent ist entspricht der Zeichenfolgenform SVG. Da SVG selbst ein HTML-Element ist, können Sie SVG nach Erhalt des SVG-Inhalts über den folgenden Code direkt in die Webseite einfügen:

window.document.getElementById('app').innerHTML = svgContent;
Nach dem Login kopieren

Die relevante Webpack-Konfiguration bei Verwendung von Raw -loader lautet wie folgt:

module.exports = {
 module: {
  rules: [
   {
    test: /\.svg$/,
    use: ['raw-loader']
   }
  ]
 }
};
Nach dem Login kopieren

Da Raw-Loader den Textinhalt von SVG direkt zurückgibt und den Textinhalt von SVG nicht über CSS anzeigen kann, kann SVG nach Verwendung dieser Methode nicht in CSS importiert werden. Das heißt, Code wie „background-image: url(./svgs/activity.svg)“ kann nicht in CSS erscheinen, da „background-image: url(<svg>...</svg>)“ illegal ist .

Dieses Beispiel stellt den vollständigen Code des Projekts bereit

Verwendung des SVG-Inline-Loaders

SVG-Inline-Loader und des erwähnten Raw-Loaders Die oben genannten sind sehr ähnlich, der Unterschied besteht jedoch darin, dass der SVG-Inline-Loader den Inhalt von SVG analysiert und unnötigen Code entfernt, um die Dateigröße von SVG zu reduzieren.

Nachdem Sie Zeichenwerkzeuge wie Adobe Illustrator und Sketch zum Erstellen von SVG verwendet haben, generieren diese Werkzeuge unnötigen Code für die Ausführung der Webseite beim Exportieren. Das Folgende ist beispielsweise der von Sketch exportierte SVG-Code:

&lt;svg class=&quot;icon&quot; verison=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;24&quot; height=&quot;24&quot; viewBox=&quot;0 0 24 24&quot;
   stroke=&quot;#000&quot;&gt;
 &lt;circle cx=&quot;12&quot; cy=&quot;12&quot; r=&quot;10&quot;/&gt;
&lt;/svg&gt;
Nach dem Login kopieren

wird nach der Verarbeitung durch den SVG-Inline-Loader wie folgt vereinfacht:

&lt;svg viewBox=&quot;0 0 24 24&quot; stroke=&quot;#000&quot;&gt;&lt;circle cx=&quot;12&quot; cy=&quot;12&quot; r=&quot;10&quot;/&gt;&lt;/svg&gt;
Nach dem Login kopieren

Mit anderen Worten: SVG- Inline-Loader wurde um eine Komprimierungsfunktion für SVG hinzugefügt.

Die relevante Webpack-Konfiguration bei Verwendung des SVG-Inline-Loaders lautet wie folgt:

module.exports = {
 module: {
  rules: [
   {
    test: /\.svg$/,
    use: [&#39;svg-inline-loader&#39;]
   }
  ]
 }
};
Nach dem Login kopieren

Dieses Beispiel stellt den vollständigen Code des Projekts bereit

Das Obige ist das, wofür ich kompiliert habe Ich hoffe, es wird in Zukunft nützlich sein. Jeder ist hilfreich.

Verwandte Artikel:

So integrieren Sie Vux in vue.js, um Pull-Up-Laden und Pull-Down-Aktualisierung zu implementieren

Verwandt Vue-Projekte in Webpack Ressourcendatei meldet 404-Problem (ausführliches Tutorial)

Verwenden Sie Webpack+vue2 für die Projektkonstruktion

Informationen zur Implementierung der sekundären Verknüpfung in vue ist standardmäßig ausgewählt Der erste Wert

Ui-Route verwenden, um mehrschichtiges verschachteltes Routing in AngularJS zu implementieren (ausführliches Tutorial)

Das obige ist der detaillierte Inhalt vonSo laden Sie SVG in Webpack. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

VUE3-Erste-Schritte-Tutorial: Paketieren und Erstellen mit Webpack VUE3-Erste-Schritte-Tutorial: Paketieren und Erstellen mit Webpack Jun 15, 2023 pm 06:17 PM

VUE3-Erste-Schritte-Tutorial: Paketieren und Erstellen mit Webpack

Was ist der Unterschied zwischen Vite und Webpack? Was ist der Unterschied zwischen Vite und Webpack? Jan 11, 2023 pm 02:55 PM

Was ist der Unterschied zwischen Vite und Webpack?

Verwendung von PHP und Webpack für die modulare Entwicklung Verwendung von PHP und Webpack für die modulare Entwicklung May 11, 2023 pm 03:52 PM

Verwendung von PHP und Webpack für die modulare Entwicklung

Welche Dateien können Vue-Webpack-Pakete enthalten? Welche Dateien können Vue-Webpack-Pakete enthalten? Dec 20, 2022 pm 07:44 PM

Welche Dateien können Vue-Webpack-Pakete enthalten?

Was ist Webpack? Detaillierte Erklärung der Funktionsweise? Was ist Webpack? Detaillierte Erklärung der Funktionsweise? Oct 13, 2022 pm 07:36 PM

Was ist Webpack? Detaillierte Erklärung der Funktionsweise?

Wie konvertiert Webpack das ES6-Modul in das ES5-Modul? Wie konvertiert Webpack das ES6-Modul in das ES5-Modul? Oct 18, 2022 pm 03:48 PM

Wie konvertiert Webpack das ES6-Modul in das ES5-Modul?

Verwenden Sie Spring Boot und Webpack, um Front-End-Projekte und Plug-in-Systeme zu erstellen Verwenden Sie Spring Boot und Webpack, um Front-End-Projekte und Plug-in-Systeme zu erstellen Jun 22, 2023 am 09:13 AM

Verwenden Sie Spring Boot und Webpack, um Front-End-Projekte und Plug-in-Systeme zu erstellen

Webpack behandelt Kompatibilitätsprobleme mit CSS-Browsern Webpack behandelt Kompatibilitätsprobleme mit CSS-Browsern Aug 09, 2022 pm 02:50 PM

Webpack behandelt Kompatibilitätsprobleme mit CSS-Browsern

See all articles