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

HTML+CSS zum Erzielen von Spezialeffekten durch Textfaltung – Beispiel

In diesem Artikel werden hauptsächlich Beispiele ...

Starten Sie die auf Docker basierende nginxssl-Konfiguration

Voraussetzungen Ein Cloud-Server (centOS von Alib...

Detaillierte Erklärung der regulären Ausdrücke von Nginx

Nginx (Engine x) ist ein leistungsstarker HTTP- u...

Natives JS zur Implementierung eines Klickzahlenspiels

Native JS implementiert das Klickzahlenspiel zu I...

HTML-Tabellen-Markup-Tutorial (43): VALIGN-Attribut der Tabellenüberschrift

In vertikaler Richtung können Sie die Ausrichtung...

JavaScript imitiert den Jingdong-Karusselleffekt

In diesem Artikel wird der spezifische Code für J...

So lassen Sie eine Remoteverbindung in MySql zu

So lassen Sie eine Remoteverbindung in MySql zu U...

Tipps zum Anzeigen von Text in Linux (super praktisch!)

Vorwort Bei der täglichen Entwicklung müssen wir ...

So erstellen Sie schnell MySQL Master-Slave mit mysqlreplicate

Einführung Das mysql-utilities-Toolset ist eine S...

Lernprogramm für HTML-Webseitenlisten-Tags

Lernprogramm zum Erlernen von Listen-Tags für HTML...

Detaillierte Erklärung der Meta-Tags und ihrer Verwendung in HTML

Ich werde keine weitere Zeit mit Unsinnsgerede ve...