Beispiel einer Vorrendering-Methode für eine Vue-Einzelseitenanwendung

Beispiel einer Vorrendering-Methode für eine Vue-Einzelseitenanwendung

Vorwort

Mit vue-cli gepackte Projekte sind im Allgemeinen SPA-Projekte. Wie wir alle wissen, sind Single-Page-Anwendungen nicht förderlich für SEO. Es gibt zwei Lösungen: SSR (Server-Side-Rendering) und Pre-Rendering. Hier diskutieren wir nur das Pre-Rendering.

vue-cli 2.0 Version

Installieren

npm installiere Prerender-Spa-Plugin --Speichern

webpack.prod.conf.js fügt etwas Code hinzu

const Pfad = require('Pfad')
const PrerenderSPAPlugin = require('prerender-spa-plugin') // Plugin importieren const Renderer = PrerenderSPAPlugin.PuppeteerRenderer

Plugins:[
	// PrerenderSPAPlugin konfigurieren
    neues PrerenderSPAPlugin({
      // Der Pfad der generierten Datei kann auch mit dem von webpakc gepackten Pfad übereinstimmen.
      staticDir: Pfad.join(__dirname, '../dist'),
      
      // Entsprechend Ihrer eigenen Routing-Datei. Wenn beispielsweise der Index Parameter hat, müssen Sie ihn als /index/param1 schreiben.
      Routen: ['/', '/report','/genius','/index/param1'],
      // Muss geschrieben werden, wenn dieser Abschnitt nicht konfiguriert ist, wird keine Vorkompilierung durchgeführtrenderer: new Renderer({
          injizieren: {
            foo: "Leiste"
          },
          kopflos: falsch,
          // In main.js, document.dispatchEvent(new Event('render-event')), sollten die Ereignisnamen der beiden übereinstimmen.
          renderAfterDocumentEvent: 'Renderereignis'
      })
    })
]

In main.js hinzufügen

neuer Vue({
  el: '#pingce',
  Router,
  speichern,
  Komponenten: { App },
  Vorlage: '<App/>',
  // Mounted hinzufügen, sonst wird die Vorkompilierung nicht ausgeführt mounted () {
    document.dispatchEvent(neues Ereignis('Render-Ereignis'))
  }
})

Modus festlegen: „Verlauf“ in router.js

Führen Sie „npm run build“ aus und prüfen Sie, ob im generierten „Dist“-Verzeichnis ein Ordner vorhanden ist, der jedem Routennamen entspricht. Suchen Sie dann im Verzeichnis nach der Datei „index.html“ und öffnen Sie sie mit der IDE, um zu sehen, ob die Datei den gewünschten Inhalt hat.

Jede von Ihnen konfigurierte Route generiert einen Ordner und unter jedem Ordner wird dann eine Datei „index.html“ generiert.

vue-cli 3.0 Version

Die 3.0-CLI sieht viel einfacher aus, da die 2.0-Build- und Konfigurationsverzeichnisse entfernt wurden. Wie ändern wir also die Webpack-Konfiguration?

Erstellen Sie vue.config.js im Stammverzeichnis und nehmen Sie Ihre Konfiguration vor.

Installieren

npm installiere Prerender-Spa-Plugin --Speichern

vue-config.js hinzufügen

const PrerenderSPAPlugin = require('prerender-spa-plugin'); // Plugin importieren const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
const path = require('Pfad');
modul.exporte = {
    konfigurierenWebpack: config => {
        wenn (Prozess.env.NODE_ENV !== 'Produktion') zurückgeben;
        zurückkehren {
            Plugins: [
                neues PrerenderSPAPlugin({
                    // Der Pfad der generierten Datei kann auch mit dem von webpakc gepackten Pfad übereinstimmen.
                    // Dieses Verzeichnis kann nur eine Ebene haben. Wenn die Verzeichnisebene größer als eine Ebene ist, wird während der Generierung keine Fehlermeldung angezeigt und es bleibt einfach beim Vorrendern hängen.
                    staticDir: Pfad.join(__dirname,'dist'),
                    // Entsprechend Ihrer eigenen Routing-Datei. Wenn beispielsweise „about“ Parameter hat, müssen Sie es als „/about/param1“ schreiben.
                    Routen: ['/', '/Produkt', '/Über'],
                    //Muss konfiguriert werden, sonst wird keine Vorkompilierung durchgeführtrenderer: new Renderer({
                        injizieren: {
                            foo: "Leiste"
                        },
                        kopflos: falsch,
                        // In main.js, document.dispatchEvent(new Event('render-event')), sollten die Ereignisnamen der beiden übereinstimmen.
                        renderAfterDocumentEvent: 'Renderereignis'
                    })
                }),
            ],
        };
    }
}

In main.js hinzufügen

neuer Vue({
  Router,
  speichern,
  rendern: h => h(App),
  // Der Name von renderAfterDocumentEvent in vue-config.js: 'render-event' muss mit mounted () { übereinstimmen.
    document.dispatchEvent(neues Ereignis('Render-Ereignis'))
  }
}).$mount('#app')

Modus festlegen: „Verlauf“ in router.js

Führen Sie „npm run build“ aus und prüfen Sie, ob im generierten „Dist“-Verzeichnis ein Ordner vorhanden ist, der jedem Routennamen entspricht.

Zusammenfassen

1. Am besten verwenden Sie den Verlaufsmodus zum Routing. Sie können die generierte Datei auch ausführen, ohne sie zu verwenden, aber der Inhalt jeder index.html-Datei ist derselbe.

2. Die Einstellungen in 3.0 sind ungefähr dieselben wie in 2.0, aber es gibt einige Stellen, die Aufmerksamkeit erfordern.

Legen Sie in 2.0 staticDir fest: path.join(__dirname,'../dist')

Legen Sie in 3.0 staticDir fest: path.join(__dirname,'dist')

Wenn diese beiden Einstellungen falsch sind, wird beim Ausführen von „npm run build“ ein Fehler gemeldet.

Wenn Sie den Titel und die Metadaten jeder Seite festlegen möchten, wird die Verwendung von [vue-meta-info] empfohlen.

Dies ist das Ende dieses Artikels über das Vorrendern von Vue-Einzelseitenanwendungen. Weitere relevante Inhalte zum Vorrendern von Vue-Einzelseitenanwendungen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vorab-Rendering einzelner Seiten über Vue-CLI, SEO-Prerender-Spa-Plugin-Vorgang

<<:  Detailliertes grafisches Tutorial zur Installation der virtuellen CentOS7-Maschine in Virtualbox

>>:  Webseitenerstellung für Anfänger: Lernen Sie den Umgang mit dem A-Tag für HTML-Hyperlinks

Artikel empfehlen

N Möglichkeiten, mit CSS ein zweispaltiges Layout zu erreichen

1. Was ist ein zweispaltiges Layout? Es gibt zwei...

Detaillierte Erklärung zur Verwendung der Vue h-Funktion

Inhaltsverzeichnis 1. Verstehen 2. Verwendung 1. ...

js, um die Rotation von Webseitenbildern zu realisieren

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

So erstellen Sie ein Docker-Repository mit Nexus

Das mit dem offiziellen Docker-Register erstellte...

So führen Sie MySQL mit Docker-Compose aus

Verzeichnisstruktur . │ .env │ docker-compose.yml...

Optimierung der Frontend-Leistung von Websites: JavaScript und CSS

Ich habe einen Artikel des Yahoo-Teams über die O...

Zabbix' PSK-Verschlüsselung kombiniert mit zabbix_get-Wert

Seit Zabbix Version 3.0 wird verschlüsselte Kommu...

jQuery implementiert das Ausblenden und Anzeigen von HTML-Elementen

Lassen Sie uns die Funktion von Taobao nachahmen,...

Installationsprozess des 64-Bit-Quellcodes von CentOs7 MySQL 5.6.40

1. Installieren Sie zuerst die Abhängigkeitspaket...

Verwenden Sie „overflow: hidden“, um Seiten-Bildlaufleisten zu deaktivieren

Code kopieren Der Code lautet wie folgt: html { Ü...