Vue.js verarbeitet Icon-Symbole über Komponenten

Vue.js verarbeitet Icon-Symbole über Komponenten

Icon-Icon-Verarbeitungslösung

Das Ziel dieses Datensatzes besteht darin, aufzuzeichnen, wie andere Symbole als Element-Plus in eine Komponente eingekapselt werden können. Ich hoffe, es kann mir bei der Lösung von Symbolproblemen bei der Arbeit helfen.

Die Analyse zeigt, dass Element-Plus-Symbole über El-Icon angezeigt werden können, während benutzerdefinierte Symbole eine benutzerdefinierte Symbolkomponente erfordern, um benutzerdefinierte SVG-Symbole anzuzeigen.

Komponentenfunktionen

  • Externes SVG-Symbol anzeigen (externer Link)
  • Zeigen Sie das SVG-Symbol im Projekt an

Verpackungsideen für Symbolkomponenten

Symbolkomponente zur Anzeige

Erstellen Sie components/SvgIcon/index.vue :

<Vorlage>
    <div
        v-if="istExternal"
        :Stil="StilExternesSymbol"
        Klasse = "svg-external-icon svg-icon"
        :Klasse="Klassenname"
    />
    <svg v-else class="svg-icon" :Klasse="Klassenname" aria-hidden="true">
        <use :xlink:href="iconName" rel="external nofollow" />
    </svg>
</Vorlage>
​
<Skript-Setup>
    importiere { isExternal als extern } von '@/utils/validate'
    importiere { defineProps, berechnet } von 'vue'
    const props = defineProps({
        //Symbol Symbol: {
            Typ: Zeichenfolge,
            erforderlich: true
        },
        // Name der Symbolklasse className: {
            Typ: Zeichenfolge,
            Standard: ''
        }
    })
    /**
     * Bestimmen Sie, ob es sich um ein externes Symbol handelt*/
    const isExternal = berechnet(() => extern(props.icon))
    /**
     * Externer Symbolstil */
    const styleExternalIcon = berechnet(() => ({
        Maske: `url(${props.icon}) no-repeat 50% 50%`,
        „-webkit-mask“: „url(${props.icon}) keine Wiederholung 50 % 50 %“
    }))
    /**
     * Projektsymbol */
    const iconName = berechnet(() => `#icon-${props.icon}`)
</Skript>
​
<style lang='scss' scoped>
    .svg-Symbol {
        Breite: 1em;
        Höhe: 1em;
        vertikale Ausrichtung: -0,15em;
        füllen: aktuelle Farbe;
        Überlauf: versteckt;
    }
​
    .svg-external-icon {
        Hintergrundfarbe: aktuelle Farbe;
        Maskengröße: Abdeckung !wichtig;
        Anzeige: Inline-Block;
    }
</Stil>
​

Bestimmen Sie, ob es sich bei der Ressource um eine externe Ressource handelt

Erstellen Sie utils/validate.js :

/**
 * Bestimmen Sie, ob es sich um eine externe Ressource handelt*/
Exportfunktion isExternal(Pfad) {
  return /^(https?:|mailto:|tel:)/.test(Pfad)
}

Externe SVG-Symbolanzeige

Durch die Einführung der Komponente svg-icon übergibt icon den externen Link zum Icon.

<span class="svg-container">
    <svg-Symbol Symbol="https://xxx.svg"></svg-Symbol>
</span>

Verarbeiten von SVG-Symbolen in Projekten

  • Erstellen Sie einen Icons-Ordner im src-Verzeichnis des Projekts und importieren Sie die SVG-Icon-Datei
  • Erstellen Sie eine index.js-Datei unter Symbolen

Dateien haben zwei Aufgaben

  • Alle SVG-Symbole importieren
  • Schließen Sie die globale Registrierung von SvgIcon ab

Der index.js-Code lautet wie folgt

Referenzdokument Abhängigkeitsverwaltung | webpack Chinesische Dokumentation

importiere SvgIcon aus '@/components/SvgIcon'
​
// Erstellen Sie Ihren eigenen Kontext mit der Funktion require.context()
const svgRequire = require.context('./svg', false, /\.svg$/)
// An dieser Stelle wird eine Require-Funktion zurückgegeben, welche einen Request-Parameter für den Require-Import entgegennehmen kann.
// Diese Funktion bietet drei Eigenschaften und Sie können alle SVG-Symbole über require.keys() abrufen. // Durchlaufen Sie die Symbole und übergeben Sie die Symbole als Anforderungen an die Funktion „Require Import“, um den Import der lokalen SVG-Symbole abzuschließen. svgRequire.keys().forEach(svgIcon => svgRequire(svgIcon))
​
Standard-App exportieren => {
 app.component('svg-icon', SvgIcon)
}

Weltweit registrierte Projektsymbole

Importieren Sie diese Datei in main.js

...
// svgIcon importieren
importiere installIcons aus '@/icons'
...
installIcons(App)
...

Internes Symbol verwenden

// Benutzername <svg-icon icon="user" />
// Passwort<svg-icon icon="password" />

Verwenden Sie svg-sprite-loader um svg-Symbole zu verarbeiten

svg-sprite-loader ist ein loader in webpack , der auf die Verarbeitung von SVG-Symbolen spezialisiert ist

Installieren: npm i --save-dev [email protected]

Konfigurieren Sie loader in der Datei vue.config.js

const Pfad = require('Pfad')
Funktion „resolve(dir)“ {
 return path.join(__dirname, dir)
}
​
modul.exporte = {
 chainWebpack(Konfiguration) {
   // SVG-Sprite-Loader einrichten
   Konfigurationsmodul
     .regel('svg')
     .exclude.add(auflösen('src/icons'))
     .Ende()
   Konfigurationsmodul
     .regel('Symbole')
     .prüfung(/\.svg$/)
     .include.add(auflösen('src/icons'))
     .Ende()
     .verwenden('svg-sprite-loader')
     .loader('svg-sprite-loader')
     .Optionen({
       symbolId: 'Symbol-[Name]'
     })
     .Ende()
 }
}

Dadurch wird das interne SVG-Symbol verarbeitet.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Zwei Beispiele für die Verwendung von Symbolen in Vue3
  • Schritte zum Anpassen des Symbols in Vue
  • So führen Sie ein Symbolsymbol in ein Vue-Elementprojekt ein
  • So verwenden Sie benutzerdefinierte Symbole in Vue
  • So führen Sie Symbolsymbole in ein Vue-Projekt ein

<<:  Beispiele für die Verwendung von HTML-Marquee-Tags

>>:  Installations- und Verwendungsschritte für Docker Compose

Artikel empfehlen

vue cli3 implementiert die Schritte der Verpackung nach Umgebung

Das mit CLI3 erstellte Vue-Projekt wird als Nullk...

So fügen Sie eine Schnittstellen-Abhörmaske in ein Vue-Projekt ein

1. Geschäftshintergrund Die Verwendung einer Mask...

Detaillierte Erklärung der Kontrolle des Zugriffsvolumens durch Nginx

Zweck Machen Sie sich mit den Nginx-Modulen ngx_h...

Linux-Betrieb und -Wartung – Tutorial zur grundlegenden Datenträgerverwaltung

1. Festplattenpartition: 2. fdisk-Partition Wenn ...

jQuery implementiert Navigationsleisteneffekt mit Erweiterungsanimation

Ich habe eine Navigationsleiste mit einem erweite...