getStaticPaths
Wenn eine Seite Dynamische Routen verwendet und getStaticProps
nutzt, muss sie eine Liste von Pfaden definieren, die statisch generiert werden sollen.
Wenn Sie eine Funktion namens getStaticPaths
(Static Site Generation) aus einer Seite mit dynamischen Routen exportieren, wird Next.js alle von getStaticPaths
angegebenen Pfade statisch vorrendern.
Die getStaticPaths
API-Referenz deckt alle Parameter und Eigenschaften ab, die mit getStaticPaths
verwendet werden können.
Wann sollte ich getStaticPaths verwenden?
Sie sollten getStaticPaths
verwenden, wenn Sie Seiten statisch vorrendern, die dynamische Routen verwenden und:
- Die Daten von einem Headless-CMS stammen
- Die Daten aus einer Datenbank kommen
- Die Daten aus dem Dateisystem stammen
- Die Daten öffentlich zwischengespeichert werden können (nicht benutzerspezifisch)
- Die Seite vorgerendert werden muss (für SEO) und sehr schnell sein soll —
getStaticProps
generiertHTML
- undJSON
-Dateien, die beide von einem CDN zur Leistungsoptimierung zwischengespeichert werden können
Wann wird getStaticPaths ausgeführt
getStaticPaths
wird nur während des Builds in der Produktionsumgebung ausgeführt und nicht zur Laufzeit. Sie können den Code, der in getStaticPaths
geschrieben wurde, mit diesem Tool aus dem Client-seitigen Bundle entfernen.
Wie wird getStaticProps in Bezug auf getStaticPaths ausgeführt
getStaticProps
wird währendnext build
für alle während des Builds zurückgegebenenpaths
ausgeführtgetStaticProps
wird im Hintergrund ausgeführt, wennfallback: true
verwendet wirdgetStaticProps
wird vor dem ersten Rendering aufgerufen, wennfallback: blocking
verwendet wird
Wo kann ich getStaticPaths verwenden
getStaticPaths
muss mitgetStaticProps
verwendet werden- Sie können
getStaticPaths
nicht mitgetServerSideProps
verwenden - Sie können
getStaticPaths
aus einer Dynamischen Route, die auchgetStaticProps
verwendet, exportieren - Sie können
getStaticPaths
nicht aus einer Nicht-Seiten-Datei (z.B. Ihremcomponents
-Ordner) exportieren - Sie müssen
getStaticPaths
als eigenständige Funktion und nicht als Eigenschaft der Seitenkomponente exportieren
Wird in der Entwicklung bei jeder Anfrage ausgeführt
In der Entwicklung (next dev
) wird getStaticPaths
bei jeder Anfrage aufgerufen.
Pfade on-demand generieren
getStaticPaths
ermöglicht es Ihnen, zu steuern, welche Seiten während des Builds und nicht on-demand mit fallback
generiert werden. Die Generierung weiterer Seiten während eines Builds führt zu langsameren Builds.
Sie können die Generierung aller Seiten on-demand verzögern, indem Sie ein leeres Array für paths
zurückgeben. Dies kann besonders hilfreich sein, wenn Sie Ihre Next.js-Anwendung in verschiedenen Umgebungen bereitstellen. Sie können beispielsweise schnellere Builds erreichen, indem Sie alle Seiten on-demand für Vorschauen generieren (aber nicht für Produktions-Builds). Dies ist nützlich für Websites mit hunderten/tausenden statischen Seiten.