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

Beispielcode für horizontalen Linienstil „hr“

Code kopieren Der Code lautet wie folgt: <hr S...

So beheben Sie den Startfehler des Docker-Containers

Frage: Nach dem Neustart des Computers kann der M...

So verbergen Sie die Versionsnummer in Nginx

Nginx verbirgt die Versionsnummer In einer Produk...

Welche Wissenssysteme brauchen Webdesigner?

Produktdesigner sind mit komplexen und großen Fert...

Alibaba Cloud Server Ubuntu Konfigurations-Tutorial

Da für den Import benutzerdefinierter Ubuntu-Imag...

jQuery implementiert einen einfachen Kommentarbereich

In diesem Artikel wird der spezifische Code von j...

Mehrere Grundsätze für die Produktdesign-Referenz auf Websites

In der folgenden Analyse geht es um Produktdesign...

js genaue Berechnung

var numA = 0,1; var numB = 0,2; Alarm (Zahl A + Z...

Grafische Einführung in den Unterschied zwischen := und = in MySQL

Der Unterschied zwischen := und = = Nur beim Setz...

So mounten Sie die CD, um das RPM-Paket unter Linux zu finden

Vorne geschrieben Manchmal müssen Sie bei der Ver...

Verwendung des MySQL-Stresstesttools Mysqlslap

1. MySQLs eigenes Stresstest-Tool Mysqlslap mysql...

Drei Möglichkeiten zur Implementierung von Animationen in CSS3

Hiermit werden die Grundkenntnisse des Interviewt...