Entdecken Sie, wie Next.js 14 die statische Seitengenerierung für blitzschnelle Websites verbessert. Lernen Sie SSG implementieren, On-Demand-Revalidierung nutzen und die Leistung optimieren. Steigern Sie Geschwindigkeit, SEO und Effizienz Ihrer Web-App mit Next.js' leistungsstarken SSG-Funktionen
by Stefan Kalysta
-
5 minutes read
-
In der sich ständig weiterentwickelnden Landschaft der Webentwicklung stehen Leistung und Benutzererfahrung an oberster Stelle. Next.js 14, die neueste Version des beliebten React-Frameworks, verschiebt weiterhin die Grenzen des Möglichen bei der statischen Seitengenerierung (SSG). Lassen Sie uns untersuchen, wie SSG mit Next.js Ihre Webanwendungen beschleunigen kann.
Statische Seitengenerierung ist eine Technik, bei der Webseiten zur Build-Zeit vorgerendert werden, was zu statischen HTML-Dateien führt. Diese Dateien können direkt von einem CDN bereitgestellt werden, was zu blitzschnellen Ladezeiten und verbesserter SEO führt.
Next.js 14 baut auf seinen Vorgängern auf und bietet erweiterte SSG-Fähigkeiten:
Verbesserte Build-Leistung: Die neueste Version optimiert den Build-Prozess und ermöglicht eine schnellere Generierung statischer Seiten.
Inkrementelle Statische Regeneration (ISR): Diese Funktion ermöglicht es Ihnen, statische Inhalte zu aktualisieren, ohne Ihre gesamte Website neu zu erstellen.
On-Demand-Revalidierung: In Version 14 eingeführt, erlaubt dies die programmatische Revalidierung und Regenerierung statischer Seiten.
Um eine statisch generierte Seite in Next.js 14 zu erstellen, können Sie die Funktion getStaticProps
verwenden:
export async function getStaticProps() {
const res = await fetch('https://api.example.com/data')
const data = await res.json()
return {
props: { data },
revalidate: 60 // Alle 60 Sekunden revalidieren
}
}
export default function Page({ data }) {
return <div>{data.title}</div>
}
Dieser Ansatz rendert die Seite zur Build-Zeit vor und kann sie alle 60 Sekunden revalidieren, um frische Inhalte ohne Leistungseinbußen zu gewährleisten.
Statische Seitengenerierung ist ideal für:
Next.js 14 ermöglicht es Ihnen, SSG mit serverseitigem Rendering (SSR) und clientseitigem Rendering zu mischen und anzupassen. Diese Flexibilität ermöglicht es Ihnen, jede Seite entsprechend ihren spezifischen Anforderungen zu optimieren.
Next.js 14 führt eine leistungsstarke Funktion für die On-Demand-Revalidierung ein:
// pages/api/revalidate.js
export default async function handler(req, res) {
if (req.query.secret !== process.env.REVALIDATION_TOKEN) {
return res.status(401).json({ message: 'Ungültiger Token' })
}
try {
await res.revalidate('/zu-revalidierende-seite')
return res.json({ revalidated: true })
} catch (err) {
return res.status(500).send('Fehler bei der Revalidierung')
}
}
Diese API-Route ermöglicht es Ihnen, die Revalidierung programmatisch auszulösen, perfekt für die Aktualisierung von Inhalten nach CMS-Änderungen oder Benutzeraktionen.
Next.js 14 verfeinert weiterhin seine Image-Komponente, die nahtlos mit SSG zusammenarbeitet:
import Image from 'next/image'
export default function OptimizedImage() {
return (
<Image
src="/pfad/zum/bild.jpg"
alt="Beschreibung"
width={500}
height={300}
layout="responsive"
/>
)
}
Diese Komponente optimiert Bilder automatisch und liefert sie in modernen Formaten und Größen, die für das Gerät des Benutzers geeignet sind.
Statische Seitengenerierung mit Next.js 14 bietet eine leistungsstarke Lösung für die Erstellung schneller, effizienter und SEO-freundlicher Websites. Durch die Nutzung von SSG zusammen mit anderen Rendering-Methoden von Next.js können Entwickler optimale Benutzererfahrungen schaffen und gleichzeitig die Flexibilität behalten, bei Bedarf dynamische Inhalte zu handhaben.
Da die Webleistung weiterhin ein kritischer Faktor für die Benutzerzufriedenheit und das Suchmaschinenranking ist, wird die Beherrschung von SSG mit Next.js zu einer unschätzbaren Fähigkeit für moderne Webentwickler. Nutzen Sie die Kraft der statischen Generierung und sehen Sie zu, wie Ihre Next.js-Anwendungen zu neuen Höhen der Leistung und Effizienz aufsteigen.