Schritte zum Verpacken und Konfigurieren von SVG-Komponenten in Vue-Projekten

Schritte zum Verpacken und Konfigurieren von SVG-Komponenten in Vue-Projekten

Ich bin erst vor Kurzem in eine neue Firma eingestiegen. Nachdem ich das Projekt bekommen hatte, fand ich interessant, dass das Titelsymbol mit SVG erstellt wurde. In diesem Artikel wird ausführlich erklärt, wie man es verwendet.

1. Erstellen Sie ein Vue-Projekt (verwenden Sie CLI zum Erstellen eines Gerüsts. Dieses Testprojekt wird mit Vue CLI4 konfiguriert.)

2. Erstellen Sie eine benutzerdefinierte Komponente

Bildbeschreibung hier einfügen

Der spezifische Code lautet wie folgt:

<Vorlage>
  <svg :class="svgClass" aria-hidden="true" v-on="$listeners">
    <use :xlink:href="iconName" rel="external nofollow" />
  </svg>
</Vorlage>

<Skript>
Standard exportieren {
  Name: "SvgIcon",
  Requisiten: {
    Symbolklasse: {
      Typ: Zeichenfolge,
      erforderlich: wahr,
    },
    Klassenname: {
      Typ: Zeichenfolge,
      Standard: "",
    },
  },
  berechnet: {
    Symbolname() {
      gibt `#icon-${this.iconClass}` zurück;
    },
    svgClass() {
      wenn (dieser.Klassenname) {
        gibt "SVG-Symbol" + diesen Klassennamen zurück;
      } anders {
        gibt "SVG-Symbol" zurück;
      }
    },
  },
};
</Skript>

<Stilbereich>
.svg-Symbol {
  Breite: 1em;
  Höhe: 1em;
  vertikale Ausrichtung: -0,15em;
  füllen: aktuelle Farbe;
  Überlauf: versteckt;
}
</Stil>

3. Erstellen Sie Symbole im Stammverzeichnis, erstellen Sie eine neue index.js (die später global importiert wird) und erstellen Sie ein neues SVG-Verzeichnis zum Speichern von SVG-Bildern (Informationen zum Herunterladen von SVG finden Sie unter Alibabas Iconfont. Suchen Sie einfach nach Baidu).

Bildbeschreibung hier einfügen

Der spezifische Code von index.js lautet wie folgt:

Vue von „vue“ importieren
importiere SvgIcon von '@/components/svgIcon' // SVG-Komponente // global registrieren
Vue.component('svg-icon', SvgIcon)

const req = require.context('./svg', false, /\.svg$/)
const requireAll = requireContext => requireContext.keys().map(requireContext)
erfordernAlles(req)

4. Importieren Sie main.js global zur Einführung

Bildbeschreibung hier einfügen

5. Zu diesem Zeitpunkt muss das Projekt auch vue.config.js konfigurieren (sonst wird es nicht angezeigt).

const Pfad = require('Pfad')
modul.exporte = {
    chainWebpack: Konfiguration => {
        const svgRule = config.module.rule('svg')
        svgRule.uses.clear()
        svgRegel
            .prüfung(/\.svg$/)
            .include.add(Pfad.resolve(__dirname, './src/icons')).end()
            .verwenden('svg-sprite-loader')
            .loader('svg-sprite-loader')
            .Optionen({
                symbolId: 'Symbol-[Name]'
            })
        const fileRule = config.module.rule('Datei')
        fileRule.uses.clear()
        Dateiregel
            .prüfung(/\.svg$/)
            .exclude.add(Pfad.auflösen(__dirname, './src/icons'))
            .Ende()
            .use('Dateilader')
            .loader('Dateilader')
    }
}

Das ist es;

6. Komponenten im Projekt verwenden

Hier verwende ich zur Einführung funktionale Komponenten, die auch durch normale Methoden zur Verwendung von Komponenten eingeführt werden können

<Skript>
Standard exportieren {
  funktional: wahr,
  Requisiten: {
    Ebene:
      Typ: Nummer,
      erforderlich: wahr,
    },
  },
  rendern: Funktion (h, Kontext) {
    konsole.log(Kontext);
    lass vnodes = [];
    let { Ebene } = Kontext.Eigenschaften;
    // vnodes.push(<i class="el-icon-edit" style="width:19px"></i>);
    vnodes.push(<svg-icon icon-class="date"></svg-icon>);
    vnodes.push(<span class="span">{level}</span>);
    vnodes zurückgeben;
  },
};
</Skript>
<Stilbereich>
.span {
  Schriftgröße: 50px;
}
</Stil>

Hinweis: Der Wert der Symbolklasse ist direkt der Dateiname von SVG.

Damit ist dieser Artikel über die Schritte zum Einkapseln und Konfigurieren von SVG-Komponenten in Vue-Projekten abgeschlossen. Weitere Informationen zum Einkapseln und Konfigurieren von Vue-SVG-Komponenten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Der gesamte Prozessdatensatz der rekursiven Komponentenkapselung von Vue3
  • Beispielcode für die Kapselung von Vue-Popup-Box-Komponenten
  • Vue implementiert die Kapselung und Verwendung von Bildvorschaukomponenten
  • Implementierung von Vue-Scope-Slots aus der Komponentenkapselung
  • Umsetzung der Regionalisierung und Komponentenkapselung von Vuejs-Seiten
  • Wie gut wissen Sie über die All-Select-Komponentenkapselung von Vue?

<<:  Müssen die Texte der Website noch gestaltet werden?

>>:  Flex-Anordnung in CSS darstellen (Layouttool)

Artikel empfehlen

Erläuterung der CSS3-Überlaufeigenschaft

1. Überlauf Überlauf ist Überlauf (Container). We...

Detailliertes Beispiel für das Linux-Allround-Systemüberwachungstool dstat

Umfassendes Systemüberwachungstool dstat dstat is...

CentOS6.8 verwendet cmake zur Installation von MySQL5.7.18

Unter Bezugnahme auf die Online-Informationen hab...

Verwendung des Node.js-HTTP-Moduls

Inhaltsverzeichnis Vorwort HTTP HTTP-Server Datei...

So geben Sie Speicherplatz unter CentOS 6 oder CentOS 7 frei

Nachfolgend finden Sie die Schnellbefehle zum Fre...

MySQL-Grundlagen in 1 Stunde

Inhaltsverzeichnis Erste Schritte mit MySQL MySQL...

CSS- und HTML- und Front-End-Technologie-Schichtendiagramm

Die Beziehung zwischen Javascript und DOM ist seh...

Implementierung eines laufenden Springboot-Projekts mit Docker

Einführung: Die Konfiguration von Docker, auf dem...

js implementiert das Umschalten von Bildern per Maus (ohne Timer)

In diesem Artikelbeispiel wird der spezifische Co...

Layui implementiert den Bestätigungscode der Anmeldeschnittstelle

In diesem Artikelbeispiel wird der spezifische Co...

Mehrere gängige Methoden für CSS-Layouts mit gleicher Höhe

Gleichhohes Layout Bezieht sich auf das Layout vo...

HTML-Subtag und Sup-Tag

Heute stelle ich zwei HTML-Tags vor, die ich nich...

Eine kurze Diskussion über MySql-Ansichten, Trigger und gespeicherte Prozeduren

Sicht Was ist eine Ansicht? Welche Rolle spielt e...