Erstellung von Layouts und Seiten
Next.js verwendet dateisystembasierte Routing, was bedeutet, dass Sie Ordner und Dateien verwenden können, um Routen zu definieren. Diese Seite führt Sie durch die Erstellung von Layouts und Seiten sowie das Verlinken zwischen ihnen.
Erstellen einer Seite
Eine Seite ist eine Benutzeroberfläche, die für eine bestimmte Route gerendert wird. Um eine Seite zu erstellen, fügen Sie eine page
-Datei im app
-Verzeichnis hinzu und exportieren standardmäßig eine React-Komponente. Zum Beispiel, um eine Indexseite (/
) zu erstellen:

Erstellen eines Layouts
Ein Layout ist eine Benutzeroberfläche, die zwischen mehreren Seiten geteilt wird. Bei Navigation behalten Layouts ihren Zustand bei, bleiben interaktiv und werden nicht neu gerendert.
Sie können ein Layout definieren, indem Sie standardmäßig eine React-Komponente aus einer layout
-Datei exportieren. Die Komponente sollte eine children
-Prop akzeptieren, die eine Seite oder ein anderes Layout sein kann.
Um beispielsweise ein Layout zu erstellen, das Ihre Indexseite als Kind akzeptiert, fügen Sie eine layout
-Datei im app
-Verzeichnis hinzu:

Das obige Layout wird als Root-Layout bezeichnet, da es im Stammverzeichnis des app
-Ordners definiert ist. Das Root-Layout ist erforderlich und muss html
- und body
-Tags enthalten.
Erstellen einer verschachtelten Route
Eine verschachtelte Route ist eine Route, die aus mehreren URL-Segmenten besteht. Zum Beispiel besteht die /blog/[slug]
-Route aus drei Segmenten:
/
(Root-Segment)blog
(Segment)[slug]
(Blatt-Segment)
In Next.js:
- Ordner werden verwendet, um Routensegmente zu definieren, die URL-Segmenten zugeordnet sind.
- Dateien (wie
page
undlayout
) werden verwendet, um die Benutzeroberfläche für ein Segment zu erstellen.
Um verschachtelte Routen zu erstellen, können Sie Ordner ineinander verschachteln. Um beispielsweise eine Route für /blog
hinzuzufügen, erstellen Sie einen Ordner namens blog
im app
-Verzeichnis. Um /blog
öffentlich zugänglich zu machen, fügen Sie eine page.tsx
-Datei hinzu:

Sie können die Verschachtelung von Ordnern fortsetzen, um verschachtelte Routen zu erstellen. Um beispielsweise eine Route für einen bestimmten Blogbeitrag zu erstellen, erstellen Sie einen neuen [slug]
-Ordner innerhalb von blog
und fügen eine page
-Datei hinzu:

Das Einschließen eines Ordnernamens in eckige Klammern (z.B. [slug]
) erstellt ein dynamisches Routensegment, das verwendet wird, um mehrere Seiten aus Daten zu generieren, z.B. Blogbeiträge, Produktseiten usw.
Verschachteln von Layouts
Standardmäßig sind Layouts in der Ordnerhierarchie ebenfalls verschachtelt, d.h. sie umschließen untergeordnete Layouts über ihre children
-Prop. Sie können Layouts verschachteln, indem Sie layout
innerhalb bestimmter Routensegmente (Ordner) hinzufügen.
Um beispielsweise ein Layout für die /blog
-Route zu erstellen, fügen Sie eine neue layout
-Datei im blog
-Ordner hinzu.

Wenn Sie die beiden obigen Layouts kombinieren würden, würde das Root-Layout (app/layout.js
) das Blog-Layout (app/blog/layout.js
) umschließen, das wiederum die Blogseite (app/blog/page.js
) und die Blogbeitragsseite (app/blog/[slug]/page.js
) umschließen würde.
Erstellen eines dynamischen Segments
Dynamische Segmente ermöglichen es Ihnen, Routen zu erstellen, die aus Daten generiert werden. Anstatt beispielsweise manuell eine Route für jeden einzelnen Blogbeitrag zu erstellen, können Sie ein dynamisches Segment erstellen, um die Routen basierend auf Blogbeitragsdaten zu generieren.
Um ein dynamisches Segment zu erstellen, schließen Sie den Segmentnamen (Ordner) in eckige Klammern ein: [segmentName]
. Zum Beispiel ist in der app/blog/[slug]/page.tsx
-Route [slug]
das dynamische Segment.
Erfahren Sie mehr über dynamische Segmente.
Verlinken zwischen Seiten
Sie können die <Link>
-Komponente verwenden, um zwischen Routen zu navigieren. <Link>
ist eine eingebaute Next.js-Komponente, die das HTML-<a>
-Tag erweitert, um Prefetching und Client-seitige Navigation bereitzustellen.
Um beispielsweise eine Liste von Blogbeiträgen zu generieren, importieren Sie <Link>
aus next/link
und übergeben Sie eine href
-Prop an die Komponente:
<Link>
ist die primäre und empfohlene Methode, um zwischen Routen in Ihrer Next.js-Anwendung zu navigieren. Für erweiterte Navigation können Sie jedoch auch den useRouter
-Hook verwenden.