Zwei Beispiele für die Verwendung von Symbolen in Vue3

Zwei Beispiele für die Verwendung von Symbolen in Vue3

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 SVG

a 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: npm install svg-sprite-loader

Befehl: npm install --save fs

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 fontAwesome

eine 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 Quellen

Quelle fontAwesome https://www.jb51.net/article/228944.htm

Quelle svg https://www.jb51.net/article/228948.htm

4 Fazit

Bestimmen 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:
  • Detaillierte Erklärung zur Verwendung von Element-Plus in Vue3
  • Detaillierte Erläuterung des Prozesses zur globalen Verwendung von Symbolsymbolen in Element-Plus in Vue3

<<:  Langer HTML-Text wird automatisch abgeschnitten, wenn er die Tag-Breite überschreitet

>>:  Einführung und Architektur von Apache Arrow, einem leistungsstarken Datenformatbibliothekspaket auf JVM (Gkatziouras)

Artikel empfehlen

CentOS 8 offiziell veröffentlicht, basierend auf Red Hat Enterprise Linux 8

Das CentOS-Projekt, ein 100 % kompatibler Neuaufb...

Zusammenfassung der Methoden zum Abfragen von MySQL-Benutzerberechtigungen

Einführung von zwei Methoden zum Anzeigen von MyS...

Installationsprozess der React Native-Umgebung

React-Native-Installationsprozess 1.npx react-nat...

JavaScript zum Implementieren einer einfachen Uhr

In diesem Artikelbeispiel wird der spezifische Co...

Detailliertes Tutorial zur Installation von MySQL 5.7.26 auf CentOS7.4

In CentOS ist standardmäßig MariaDB installiert, ...

CSS Paint API: Ein CSS-ähnliches Zeichenbrett

1. Canvas-Bilder als CSS-Hintergrundbilder verwen...

Detaillierte Erklärung der CSS-Zeilenhöhe und -Höhe

Als ich kürzlich an CSS-Schnittstellen arbeitete,...

Nexus verwendet Nginx-Proxy zur Unterstützung des HTTPS-Protokolls

Hintergrund Alle Unternehmenswebsites müssen das ...

Detaillierte Erklärung zur Verwendung von HTML-Einbettungs-Tags und -Attributen

1. Grundlegende Grammatik Code kopieren Der Code ...

Reines CSS3 zum Erstellen eines Beispielcodes für Haushühner

Ich habe in letzter Zeit viel Wissen und Artikel ...

Einführung in gängige Befehle und Tastenkombinationen in Linux

Inhaltsverzeichnis 1 Systemeinführung 2 Systemver...