„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Ein praktischer Leitfaden – Migration zum Next.js App Router

Ein praktischer Leitfaden – Migration zum Next.js App Router

Veröffentlicht am 06.11.2024
Durchsuche:698

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 zu nutzen.

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 die Ersetzung 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 „next/router“ zu „next/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.

  • Probleme mit der Layoutverschiebung:

Beim Migrieren von Seiten mit komplexen Layouts (insbesondere solchen mit Animationen) stellen Sie möglicherweise Layoutverschiebungen fest. Fügen Sie einen 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!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/shagun/a-practical-guide-migrating-to-nextjs-app-router-3j5i?1 Bei Verstößen wenden Sie sich zum Löschen bitte an [email protected] Es
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3