Technologie-Stack und Version Vite2 + Vue3 + fontAwesome5 Die Verwendung von Symbolen in Vue3 und fontAwesome ist einfach und benutzerfreundlich, aber manchmal fehlt das gewünschte Symbol. Mit der SVG-Methode können Sie direkt herunterladen und verwenden, was Sie möchten. Die Typen sind vollständiger und es gibt im Grunde kein Symbol, das Ihren Anforderungen nicht entspricht. Es ist jedoch nicht so einfach wie fontAwesome und Sie müssen jedes Mal das entsprechende Bild herunterladen. 1. Verwenden Sie SVGa Laden Sie das SVG-Bild herunter, das Sie verwenden möchten, und speichern Sie es im Ordner src/icons b Installieren Sie den Loader, der von fs und svg abhängt Befehl: Befehl: c Erstellen Sie eine Vorlagendatei index.vue Vorlagendateicode <Vorlage> <svg :Klasse="svgKlasse" v-bind = "$attrs"> <Verwenden Sie: xlink: href="Symbolname"></Verwenden> </svg> </Vorlage> <Skript-Setup> importiere { defineProps, berechnet } von "vue"; const props = defineProps({ Name: { Typ: Zeichenfolge, erforderlich: true }, Farbe: Typ: Zeichenfolge, Standard: '', } }) const iconName = berechnet(()=>`#icon-${props.name}`); const svgClass = berechnet(()=> { // console.log(Eigenschaftenname,'Eigenschaftenname'); wenn (Eigenschaften.Name) { gibt `svg-icon icon-${props.name}` zurück } gib 'svg-icon' zurück }); </Skript> <style scoped lang ="scss"> .svg-Symbol{ Breite: 3em; Höhe: 3em; füllen: aktuelle Farbe; Rand: durchgehend 2 Pixel rot; vertikale Ausrichtung: Mitte; } </stil>> d Globale Registrierung main.js importiere { svgIcon } aus './components' .Komponente('svg-Symbol',svgIcon) e Erstellen Sie eine Importverarbeitungsfunktion und erstellen Sie svgBulider.js in Plugins Code importiere { readFileSync, readdirSync } von 'fs' let idPerfix = '' const svgTitle = /<svg([^>+].*?)>/ const clearHeightWidth = /(Breite|Höhe)="([^>+].*?)"/g const hasViewBox = /(viewBox="[^>+].*?")/g const clearReturn = /(\r)|(\n)/g Funktion findSvgFile(dir) { const svgRes = [] const dirents = readdirSync(dir, { mitDateitypen: true }) für (const dirent von dirents) { wenn (dirent.isDirectory()) { svgRes.push(...findSvgFile(dir + dirent.name + '/')) } anders { const svg = readFileSync(dir + dirent.name) .toString() .replace(clearReturn, '') .replace(svgTitle, ($1, $2) => { lass Breite = 0 sei Höhe = 0 lass Inhalt = $2.replace( klareHöheBreite, (s1, s2, s3) => { wenn (s2 === 'Breite') { Breite = s3 } sonst wenn (s2 === 'Höhe') { Höhe = s3 } zurückkehren '' } ) wenn (!hasViewBox.test($2)) { Inhalt += `viewBox="0 0 ${width} ${height}"` } gibt `<symbol id="${idPerfix}-${dirent.name.replace( '.svg', '' )}" ${content}>` }) .replace('</svg>', '</symbol>') svgRes.push(svg) } } svgRes zurückgeben } export const svgBuilder = (Pfad, Perfix = 'Symbol') => { wenn (Pfad === '') return idPerfix = Perfix const res = findSvgFile(Pfad) zurückkehren { Name: "svg-transform", transformIndexHtml(html) { html.replace( zurückgeben '<Text>', ` <Text> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position: absolute; breite: 0; höhe: 0"> ${res.join('')} </svg> ` ) } } } f Ändern Sie die Konfigurationsdatei und importieren Sie svgBulider in die Konfigurationsdatei Ändern Sie vite.config.js importiere { svgBuilder } von './src/plugins/svgBuilder'; ' exportiere Standard-DefineConfig({ Plugins: [ vue(), // Rufen Sie die entsprechende Funktion auf, um SVG zu verarbeiten svgBuilder('./src/icons/') // Der entsprechende Ordner, sonst kann er nicht gefunden werden] }) g Verwenden von SVG Kernteil <svg-icon name="questionmark" />//name Nehmen Sie Ihr SVG-Bild 2. Verwenden Sie fontAwesomeeine npm-Installation von Abhängigkeiten $ npm ich --save @fortawesome/fontawesome $ npm ich --save @fortawesome/vue-fontawesome $ npm ich --save @fortawesome/fontawesome-free-solid $ npm ich --save @fortawesome/fontawesome-free-regular $ npm i --save @fortawesome/fontawesome-free-brands b mian.js globale Registrierung //Bei Bedarf importieren importiere { FontAwesomeIcon } von '@fortawesome/vue-fontawesome' importiere { Bibliothek } von '@fortawesome/fontawesome-svg-core' importiere { faAd } von '@fortawesome/free-solid-svg-icons' importiere { faAddressBook } von '@fortawesome/free-solid-svg-icons' library.add(faAdressbuch) // Alles importieren import { fas } von '@fortawesome/free-solid-svg-icons' importiere { fab } von '@fortawesome/free-brands-svg-icons' Bibliothek.add(fas,fab) .Komponente('font-awesome-icon', FontAwesomeIcon) c Verwendung //Verwendung von On-Demand-Import<font-awesome-icon icon="address-book" class="fa-spin fa-lg"/> //Verwendung des globalen Imports <font-awesome-icon :icon="['fas','address-book']" /> 3 QuellenQuelle fontAwesome https://www.jb51.net/article/228944.htm Quelle svg https://www.jb51.net/article/228948.htm 4 FazitBestimmen Sie den entsprechenden Technologie-Stack und die Version, befolgen Sie die Schritte und es sollte kein Problem geben. Damit ist dieser Artikel über zwei Möglichkeiten zur Verwendung von Symbolen in Vue3 abgeschlossen. Weitere relevante Inhalte zur Verwendung von Symbolen in Vue3 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Langer HTML-Text wird automatisch abgeschnitten, wenn er die Tag-Breite überschreitet
Das CentOS-Projekt, ein 100 % kompatibler Neuaufb...
In einem Artikel vor langer Zeit habe ich über di...
Einführung von zwei Methoden zum Anzeigen von MyS...
Kurzeigenschaften werden verwendet, um mehreren E...
React-Native-Installationsprozess 1.npx react-nat...
Inhaltsverzeichnis 1. Ändern Sie durch Binden des...
In diesem Artikelbeispiel wird der spezifische Co...
In CentOS ist standardmäßig MariaDB installiert, ...
1. Canvas-Bilder als CSS-Hintergrundbilder verwen...
Inhaltsverzeichnis Eckig erreichen Aufrufreihenfo...
Als ich kürzlich an CSS-Schnittstellen arbeitete,...
Hintergrund Alle Unternehmenswebsites müssen das ...
1. Grundlegende Grammatik Code kopieren Der Code ...
Ich habe in letzter Zeit viel Wissen und Artikel ...
Inhaltsverzeichnis 1 Systemeinführung 2 Systemver...