Heim  >  Artikel  >  Web-Frontend  >  Ein praktischer Leitfaden – Migration zum Next.js App Router

Ein praktischer Leitfaden – Migration zum Next.js App Router

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-09-30 22:26:021082Durchsuche

A practical Guide - Migrating to Next.js App Router

Mit der Veröffentlichung des Next.js App Routers möchten viele Entwickler ihre bestehenden Projekte unbedingt migrieren. In diesem Beitrag teile ich meine Erfahrungen bei der Migration eines Projekts zum Next.js App Router, einschließlich der wichtigsten Herausforderungen, Änderungen und wie Sie den Prozess reibungsloser gestalten können.

Es handelt sich um einen inkrementellen Ansatz, Sie können den Page-Router und den App-Router gleichzeitig verwenden.

Warum auf den Next.js App Router migrieren?

Der App Router bietet mehrere Vorteile:

  • Verbessertes Routing: Saubereres dateisystembasiertes Routing.
  • Verbesserungen beim serverseitigen Rendering (SSR): Effizientere Verarbeitung serverseitiger Daten.
  • Meta-Handling: Vereinfachtes SEO-Management.
  • Verbesserte Leistung: Integrierte Optimierungen für verschiedene Komponenten.

Durch die Migration können Sie Ihre Anwendung zukunftssicher machen, um die neuesten Next.js-Funktionen nutzen zu können.

Schritte zur Migration zum App Router

  • Abhängigkeiten aktualisieren

Der erste Schritt besteht darin, sicherzustellen, dass Ihre Next.js und die zugehörigen Abhängigkeiten auf dem neuesten Stand sind. Führen Sie die folgenden Befehle aus, um die neuesten Versionen von Next.js und React zu installieren:

npm install next@latest react@latest react-dom@latest
npm install -D eslint-config-next@latest
  • Strukturieren Sie den App-Ordner

Der App Router nutzt das neue App-Verzeichnis für die Verwaltung von Routen, Metadaten und Layouts. So strukturieren Sie es:

App-Ordner: Verschieben Sie Ihre Seiten in den App-Ordner. Jede Route verfügt jetzt über einen eigenen Ordner, der eine page.tsx-Datei enthält.

Layouts: Fügen Sie eine Datei „layout.tsx“ hinzu, um Layouts für bestimmte Abschnitte Ihrer App zu definieren. Dies ist besonders nützlich für den Umgang mit gemeinsam genutzten Komponenten wie Navigationsleisten oder Fußzeilen.

  • Routeränderungen

Eine der bedeutendsten Änderungen ist der Ersatz von next/router durch next/navigation für Routing- und Navigationsfunktionen.

Ersetzen Sie alle Next/Router-Importe durch Next/Navigation.
Aktualisieren Sie Funktionen wie useRouter gegebenenfalls mit neuen Entsprechungen, z. B. usePathname, useSearchParams und useRouter().

  • Serverseitigen Code umgestalten

getServerSideProps und getStaticProps sind im App Router veraltet.
Verwenden Sie asynchrone Serverkomponenten oder Serveraktionen zum Datenabruf auf serverseitigen Seiten.

export async function getData() {
  const res = await fetch('https://getData.com/data');
  return res.json();
}
  • Umgang mit clientseitigen Komponenten

Client-Komponenten:
Jede Komponente, die React-Hooks, Browser-APIs oder Benutzerinteraktionen verwendet, muss mit „Client verwenden“ gekennzeichnet sein. Dadurch wird Next.js angewiesen, sie auf der Clientseite zu rendern.

Serverkomponenten:
Jede Komponente, die keine Interaktion mit dem Browser erfordert, kann als Serverkomponente verbleiben. Diese sind effizienter, da sie den Versand unnötigen JavaScripts an den Client vermeiden.

  • Umgang mit externen Bibliotheken

Wenn Sie externe Bibliotheken wie React Query, AntDesign oder Framer usw. verwenden, müssen Sie diese aktualisieren und bei Bedarf Änderungen vornehmen. Es können nicht alle Änderungen in diesem Blog berücksichtigt werden. Obwohl Änderungen in ihrer Dokumentation erwähnt werden.

Häufige Herausforderungen während der Migration

  • Router-Ereignisbehandlung:

Mit dem Wechsel von „Weiter/Router“ zu „Weiter/Navigation“ erfordert die Behandlung von Router-Ereignissen möglicherweise einen anderen Ansatz.
Stellen Sie sicher, dass Sie alle Router-Ereignis-Listener oder Hooks entsprechend aktualisieren.

  • Layout-Verschiebungsprobleme:

Beim Migrieren von Seiten mit komplexen Layouts (insbesondere solchen mit Animationen) stellen Sie möglicherweise Layoutverschiebungen fest. Fügen Sie Platzhalter hinzu oder achten Sie auf die korrekte Ausrichtung auf der Serverseite selbst, um Layoutverschiebungen zu verhindern.

  • Bild- und Linkkomponenten-Updates:

Der App Router führt Änderungen an den Bild- und Linkkomponenten ein.
Verwenden Sie Codemods, um Komponenten automatisch zu aktualisieren.
Entfernen Sie für die Bildkomponente veraltete Attribute wie „Responsive“.

  • Animationen

Animationsbezogene Komponenten wie Framer-, Swiper- und Lootie-Dateien müssen auf der Clientseite aufbewahrt werden.

Abschluss

Die Migration zum Next.js App Router bringt Herausforderungen mit sich, bringt aber auch erhebliche Verbesserungen bei Leistung, Skalierbarkeit und Flexibilität mit sich. Durch die Unterteilung der Migration in überschaubare Abschnitte (App-Ebene, Seitenebene und Funktionsaktualisierungen) konnte ich jede Änderung systematisch angehen.

Lassen Sie mich wissen, wenn Sie Fragen oder Tipps zu Ihren eigenen Migrationen haben!

Das obige ist der detaillierte Inhalt vonEin praktischer Leitfaden – Migration zum Next.js App Router. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn