So verwenden Sie SVG in React- und Vue-Projekten
Dieser Artikel stellt hauptsächlich die Methode zur Verwendung von SVG in React- und Vue-Projekten vor. Jetzt teile ich ihn mit Ihnen und gebe ihn als Referenz.
Einige moderne Flat-Design-Websites, insbesondere mobile Websites, enthalten häufig viele einfache und übersichtliche kleine Symbole, wie z. B. Website-Symbole, Standard-Avatare des Benutzers und feste Umschaltleisten am unteren Rand der mobilen Startseite usw. Diese kleinen Symbole werden normalerweise von Künstlern erstellt und können auf Sprites platziert und dann zugeschnitten und im Frontend angezeigt werden.
Tatsächlich besteht für Künstler keine Notwendigkeit, diese einfachen kleinen Symbole zu erstellen. Das Frontend kann SVG-Code verwenden, um diese einfachen Symbole zu zeichnen, und weil diese Symbole vorhanden sind Mit Codes beschrieben. Wenn Sie diese Symbole ändern möchten, z. B. die Symbolfarbe, die Symbolform, die Größe usw., müssen Sie nur ein paar Codezeilen ändern. Dies ist sehr einfach und nicht erforderlich den Künstler überhaupt zu überarbeiten.
In diesem Artikel wird nicht erklärt, wie man SVG zum Zeichnen von Bildern verwendet. Wenn Sie SVG nicht kennen, können Sie es hier ansehen. In diesem Artikel geht es hauptsächlich um die Verwendung von SVG auf der Website.
Verwendung von SVG in allgemeinen Webseiten
SVG verwendet das XML-Format zum Definieren von Bildern. Sie können es sich auch als allgemeines HTML-Tag vorstellen, das in eingebettet ist Um einen bestimmten Effekt zu erzielen, lautet das grundlegende Beispiel für die Verwendung von SVG auf einer Webseite wie folgt:
<body> <svg width="100" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg"> <rect width="100%" height="100%" style="fill:pink;stroke-width:1;stroke:rgb(0,0,0)"/> </svg></body>
Der Effekt ist wie folgt:
Wie Sie sehen, ist die Verwendung von SVG auf einer normalen Webseite sehr einfach. Solange Sie das SVG-Symbol zeichnen können, ist das Rendern auf der Webseite überhaupt kein Problem.
SVG in Vue verwenden
Sie können es in Vue genauso verwenden wie SVG in normalen Webseiten. Da Sie sich jedoch für Vue für ein Komponentenentwicklungsprojekt entschieden haben, Daher ist ein langer SVG-Abschnitt, der zwischen einer Reihe von Komponenten verstreut ist, etwas unansehnlich.
Eine Lösung besteht darin, das Use-Tag von SVG zu verwenden, anstatt den Code zum Zeichnen des SVG-Symbols direkt auf der Hauptseite zu schreiben, diesen großen Codeabschnitt in eine andere Datei einzufügen und dann Use zu verwenden Code zum Zeichnen von Symbolen (anscheinend macht das das mobile Terminal Ele.me so).
Fügen Sie beispielsweise den gesamten SVG-Zeichnungscode in die Datei „svg-icon.vue“ ein. Verwenden Sie Symbol-Tags, um alle Symbolzeichnungscodes zu trennen und separat zu benennen, um Verwirrung zu vermeiden, und behandeln Sie diese Datei dann als Komponente. Exportieren Sie, fügen Sie diese Komponente in die Hauptseite ein und führen Sie sie dann über das Use-Tag ein, wo das SVG-Symbol verwendet werden muss.
svg-draw.vue-Codebeispiel lautet wie folgt:
<template> <svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" style={{position:'absolute',width:0,height:0}}> <defs> <symbol viewBox="0 0 26 31" id="location"> <path xmlns="http://www.w3.org/2000/svg" d="M512.571517 65.907059c-204.736964 0-370.715183 165.979242-370.715183 370.724393 0 94.440929 35.320437 180.625824 93.462648 246.083651 1.572822 2.690272 3.50994 5.225001 5.817496 7.531534l240.297878 251.597225c1.279133 1.864464 2.736321 3.64297 4.393054 5.298679 2.111081 2.111081 4.418636 3.90596 6.856152 5.402033 14.458293 10.06524 34.491559 8.658194 47.393403-4.242627 3.26537-3.263323 5.78782-6.987135 7.582699-10.960633L783.610536 690.24766c1.867534-1.866511 3.489474-3.88447 4.876054-6.010901 58.951647-65.640999 94.819552-152.431691 94.819552-247.604284C883.305119 231.886301 717.325877 65.907059 512.571517 65.907059zM512.390391 588.611865c-82.734306 0-149.814074-67.087954-149.814074-149.842727 0-82.753749 67.079768-149.833517 149.814074-149.833517 82.772168 0 149.851936 67.079768 149.851936 149.833517C662.242328 521.523911 595.161536 588.611865 512.390391 588.611865z" fill="#d81e06"/> </symbol> </defs> </svg></template>
Die gesamte Vue-Komponente exportiert eine große SVG-Datei, die viele kleine Symbole enthält, ähnlich wie bei Sprite-Diagrammen Benennen Sie sie separat, um sie leichter nachschlagen zu können.
Verwendungsbeispiele sind wie folgt:
// index.vue ...<svg class="location-icon"> <use xlink:href="#location" rel="external nofollow" ></use></svg>...
Dann können Sie sehen, dass das entsprechende SVG-Symbol erfolgreich auf der Webseite angezeigt wird:
Es gibt jedoch ein weiteres Problem. Wenn die aktuelle Website viele SVG-Symbole verwenden muss, wird die Dateigröße von svg-icon.vue zwangsläufig größer. Der aktuelle Webseitenname muss nur eines der SVG-Symbole verwenden Als Ergebnis werden Hunderte von Symbolen geladen, was offensichtlich nicht sehr benutzerfreundlich ist. Es ist am besten, nur die Symbole zu laden, die die aktuelle Webseite benötigt oder möglicherweise nicht angezeigt werden, werden geladen, wenn sie angezeigt werden sollten. Wenn keine Chance besteht, wird es nie geladen.
Es gibt viele solcher Plug-Ins auf Github. Ich werde ein Plug-In vorstellen, das ich für sehr nützlich halte: vue-svg-icon, das einfach zu verwenden und schnell zu starten ist.
Installieren Sie zunächst dieses Plug-In. Nach Abschluss der Installation registrieren Sie dieses Plug-In in der Eintragsdatei des Projekts, um globale Aufrufe zu ermöglichen:
import Icon from 'vue-svg-icon/Icon.vue'Vue.component('icon', Icon)
Dann im Stammverzeichnis /src Erstellen Sie ein neues SVG-Verzeichnis unter dem Verzeichnis (derzeit kann dieser Pfad nur so sein und kann nicht als andere Pfade und Verzeichnisse konfiguriert werden) und legen Sie dann die SVG-Datei des SVG-Symbols ab, das Sie verwenden möchten in diesem Verzeichnis.
Zum Beispiel sieht die SVG-Datei eines WeChat-Symbols wie folgt aus:
<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg t="1502683891821" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2885" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"> <defs> <style type="text/css"></style> </defs> <path d="M282.6 363.8c-23.7 0-47-15.7-47-38.9 0-23.7 23.3-38.9 46.5-38.9 23.7 0 38.9 15.2 38.9 38.9 0.5 23.2-15.1 38.9-38.4 38.9zM500.4 286c23.7 0 38.9 15.2 38.9 38.9 0 23.3-15.2 38.9-38.9 38.9-23.3 0-47-15.7-47-38.9 0-23.7 23.7-38.9 47-38.9z m167.7 84.5c9.8 0 19.7 0.5 30 1.8-27.3-125.6-161.4-218.7-314.4-218.7C212.4 153.6 72 270.3 72 418.3c0 85.9 46.5 155.6 124.8 210.2l-31.3 93.9 109.1-54.6c38.9 7.6 70.2 15.7 109.1 15.7 9.4 0 19.2-0.5 29.1-1.3-6.3-20.6-9.8-42.9-9.8-65.3-0.1-136 116.6-246.4 265.1-246.4z" p-id="2886"></path><path d="M772.7 573.9c-15.2 0-30.9-15.2-30.9-30.9 0.5-15.7 15.7-31.3 30.9-31.3 23.7 0 39.4 15.7 39.4 31.3-0.1 15.7-15.7 30.9-39.4 30.9z m-171.3 0c-15.2 0-30.9-15.2-30.9-30.9s15.7-31.3 30.9-31.3c23.7 0 38.9 15.7 38.9 31.3 0.5 15.7-15.2 30.9-38.9 30.9zM952 613.3C952 488.5 827.2 387 687.3 387c-148 0-264.7 101.5-264.7 226.3 0 124.8 116.7 225.8 264.7 225.8 31.3 0 62.6-8.1 93.5-15.7l85.9 47-23.7-77.8c62.5-47 109-109.1 109-179.3z" p-id="2887"> </path> </svg>
Speichern Sie den obigen Code in einer .svg-Datei, z. B. wx.svg, und fügen Sie ihn in /src/ ein. SVG-Verzeichnis, und Sie sind mit der Vorbereitungsarbeit fertig.
Wenn Sie es als nächstes verwenden möchten, schreiben Sie dies einfach direkt in die Vue-Komponente:
<template> <icon class="wx-icon" name="wx"></icon></template>
Wenn Sie die Seite aktualisieren, Öffnen Sie die Konsole und Sie können sehen, dass die Datei wx.svg auf die Seite geladen wird. Auf diese Weise wird die bedarfsgesteuerte Einführung der SVG-Datei realisiert.
Svg in React verwenden
Svg in React verwenden ist dasselbe wie bei Vue. Eine Möglichkeit besteht darin, direkt in die Reader-Methode von React zu schreiben. SVG-Code, die zweite besteht darin, den gesamten SVG-Zeichnungscode in eine Datei zu packen und die Datei dann auf einmal zu laden, wobei das Use-Tag verwendet wird, um auf das entsprechende SVG-Muster zu verweisen, und die dritte besteht darin, ein Plug-In zu verwenden, um es einzuführen Nachfrage.
第一种直接在 渲染方法中写入 svg的方法就不多说了,第二种也很简单 ,和 vue一样,只不过写法上需要注意一下。
render() { return ( <svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" style={{position:'absolute',width:0,height:0}}> <defs> <symbol viewBox="0 0 26 31" id="location"> <path fill="#FFF" fillRule="evenodd" d="M22.116 22.601c-2.329 2.804-7.669 7.827-7.669 7.827-.799.762-2.094.763-2.897-.008 0 0-5.26-4.97-7.643-7.796C1.524 19.8 0 16.89 0 13.194 0 5.908 5.82 0 13 0s13 5.907 13 13.195c0 3.682-1.554 6.602-3.884 9.406zM18 13a5 5 0 1 0-10 0 5 5 0 0 0 10 0z"></path> </symbol> <symbol viewBox="0 0 14 8" id="arrow"> <path fill="#FFF" fillRule="evenodd" d="M5.588 6.588c.78.78 2.04.784 2.824 0l5.176-5.176c.78-.78.517-1.412-.582-1.412H.994C-.107 0-.372.628.412 1.412l5.176 5.176z"></path> </symbol> </svg> ) }
主要是需要注意,因为 react使用 jsx语法,不允许出现 - 连字符,所以像 fill-rule这样的属性,就必须写成 fillRule,引用的时候同样如此。
// 引用的时候需要将 `xlink:href` 改写成 xlinkHref<svg className="arrow-left"> <use xlinkhref="#arrow-left" rel="external nofollow" ></use> </svg>
第三种按需引入,只加载当前需要的 svg形状,同样是将每一个 svg图片作为一个单独的文件保存,然后再需要使用的地方进行引用。 Github上有个项目 react-svg,这个项目内部其实是对 SVGInjector的包装,
安装 react-svg之后,就可以像下面这样使用了:
import ReactSVG from 'react-svg' ReactDOM.render( <ReactSVG path="atomic.svg" callback={svg => console.log(svg)} className="example" />, document.querySelector('.Root') )
一般都只是在使用小图标的时候才考虑 svg,而这些小图标一般都比较简约,绘制起来也没什么难度,不过大部分情况下没有必要自己来画,很多网站都提供svg的图标下载,例如阿里的 iconfont,图标数量众多,基本可以满足绝大部分的需求,另外,类似的网站还有 easyicon 、 icomoon等。
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
如何解决vue 更改计算属性后select选中值不更改的问题,具体操作如下
Das obige ist der detaillierte Inhalt vonSo verwenden Sie SVG in React- und Vue-Projekten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So erstellen Sie eine Echtzeit-Chat-Anwendung mit React und WebSocket Einführung: Mit der rasanten Entwicklung des Internets hat die Echtzeitkommunikation immer mehr Aufmerksamkeit auf sich gezogen. Live-Chat-Apps sind aus dem modernen Sozial- und Arbeitsleben nicht mehr wegzudenken. In diesem Artikel wird erläutert, wie Sie mit React und WebSocket eine einfache Echtzeit-Chat-Anwendung erstellen, und es werden spezifische Codebeispiele bereitgestellt. 1. Technische Vorbereitung Bevor wir mit der Erstellung einer Echtzeit-Chat-Anwendung beginnen, müssen wir die folgenden Technologien und Tools vorbereiten: React: eine zum Erstellen

React-Leitfaden zur Front-End- und Back-End-Trennung: So erreichen Sie die Front-End- und Back-End-Entkopplung und die unabhängige Bereitstellung. Es sind spezifische Codebeispiele erforderlich. In der heutigen Webentwicklungsumgebung ist die Front-End- und Back-End-Trennung zu einem Trend geworden. Durch die Trennung von Front-End- und Back-End-Code kann die Entwicklungsarbeit flexibler und effizienter gestaltet und die Zusammenarbeit im Team erleichtert werden. In diesem Artikel wird erläutert, wie Sie mithilfe von React eine Front-End- und Back-End-Trennung erreichen und so die Ziele der Entkopplung und unabhängigen Bereitstellung erreichen. Zuerst müssen wir verstehen, was Front-End- und Back-End-Trennung ist. Im traditionellen Webentwicklungsmodell sind Front-End und Back-End gekoppelt

So erstellen Sie mit React und Flask einfache und benutzerfreundliche Webanwendungen. Einführung: Mit der Entwicklung des Internets werden die Anforderungen an Webanwendungen immer vielfältiger und komplexer. Um den Anforderungen der Benutzer an Benutzerfreundlichkeit und Leistung gerecht zu werden, wird es immer wichtiger, moderne Technologie-Stacks zum Aufbau von Netzwerkanwendungen zu verwenden. React und Flask sind zwei sehr beliebte Frameworks für die Front-End- und Back-End-Entwicklung, und sie arbeiten gut zusammen, um einfache und benutzerfreundliche Webanwendungen zu erstellen. In diesem Artikel erfahren Sie, wie Sie React und Flask nutzen

So erstellen Sie eine zuverlässige Messaging-Anwendung mit React und RabbitMQ Einführung: Moderne Anwendungen müssen zuverlässiges Messaging unterstützen, um Funktionen wie Echtzeitaktualisierungen und Datensynchronisierung zu erreichen. React ist eine beliebte JavaScript-Bibliothek zum Erstellen von Benutzeroberflächen, während RabbitMQ eine zuverlässige Messaging-Middleware ist. In diesem Artikel wird erläutert, wie Sie React und RabbitMQ kombinieren, um eine zuverlässige Messaging-Anwendung zu erstellen, und es werden spezifische Codebeispiele bereitgestellt. RabbitMQ-Übersicht:

React Responsive Design Guide: So erzielen Sie adaptive Front-End-Layouteffekte Mit der Beliebtheit mobiler Geräte und der steigenden Nachfrage der Benutzer nach Multi-Screen-Erlebnissen ist Responsive Design zu einem der wichtigsten Aspekte in der modernen Front-End-Entwicklung geworden. React, eines der derzeit beliebtesten Frontend-Frameworks, bietet eine Fülle von Tools und Komponenten, die Entwicklern dabei helfen, adaptive Layouteffekte zu erzielen. In diesem Artikel werden einige Richtlinien und Tipps zur Implementierung von responsivem Design mit React vorgestellt und spezifische Codebeispiele als Referenz bereitgestellt. Fle mit React

React-Code-Debugging-Leitfaden: So finden und beheben Sie Front-End-Fehler schnell. Einführung: Bei der Entwicklung von React-Anwendungen stoßen Sie häufig auf eine Vielzahl von Fehlern, die zum Absturz der Anwendung oder zu fehlerhaftem Verhalten führen können. Daher ist die Beherrschung von Debugging-Fähigkeiten eine wesentliche Fähigkeit für jeden React-Entwickler. In diesem Artikel werden einige praktische Techniken zum Auffinden und Beheben von Front-End-Fehlern vorgestellt und spezifische Codebeispiele bereitgestellt, um Lesern dabei zu helfen, Fehler in React-Anwendungen schnell zu finden und zu beheben. 1. Auswahl der Debugging-Tools: In Re

ReactRouter-Benutzerhandbuch: So implementieren Sie die Front-End-Routing-Steuerung Mit der Popularität von Single-Page-Anwendungen ist das Front-End-Routing zu einem wichtigen Bestandteil geworden, der nicht ignoriert werden kann. Als beliebteste Routing-Bibliothek im React-Ökosystem bietet ReactRouter umfangreiche Funktionen und benutzerfreundliche APIs, wodurch die Implementierung des Front-End-Routings sehr einfach und flexibel ist. In diesem Artikel wird die Verwendung von ReactRouter vorgestellt und einige spezifische Codebeispiele bereitgestellt. Um ReactRouter zuerst zu installieren, benötigen wir

So verwenden Sie React und Google BigQuery zum Erstellen schneller Datenanalyseanwendungen. Einführung: Im heutigen Zeitalter der Informationsexplosion ist die Datenanalyse zu einem unverzichtbaren Bindeglied in verschiedenen Branchen geworden. Unter anderem ist die Entwicklung schneller und effizienter Datenanalyseanwendungen für viele Unternehmen und Einzelpersonen zum Ziel geworden. In diesem Artikel wird erläutert, wie Sie mit React und Google BigQuery eine schnelle Datenanalyseanwendung erstellen, und es werden detaillierte Codebeispiele bereitgestellt. 1. Übersicht React ist ein Werkzeug zum Erstellen
