"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Routeur d'application Next.js : un guide complet avec un exemple concret

Routeur d'application Next.js : un guide complet avec un exemple concret

Publié le 2024-11-01
Parcourir:262

Next.js App Router: A Comprehensive Guide with Real-World Example

Next.js a révolutionné le développement de React avec ses fonctionnalités puissantes et sa conception intuitive. Avec la sortie de Next.js 13, le nouveau App Router a occupé le devant de la scène, offrant aux développeurs un moyen plus flexible et plus puissant de structurer leurs applications. Dans ce guide complet, nous approfondirons l'App Router, en explorant ses fonctionnalités et ses meilleures pratiques. Pour illustrer ces concepts, nous utiliserons un exemple concret : un projet de générateur de lettre de motivation.

Comprendre le routeur d'applications

Le routeur d'applications dans Next.js 13 représente un changement de paradigme dans la façon dont nous abordons le routage dans les applications React. Contrairement au Pages Router précédent, l'App Router utilise une approche basée sur le système de fichiers qui s'aligne plus étroitement sur la façon dont nous modélisons mentalement la structure de notre application.

Principaux avantages du routeur d'application :

  1. Routage intuitif basé sur des fichiers : les itinéraires sont définis par la structure des fichiers dans le répertoire de votre application.
  2. Performances améliorées : prise en charge intégrée des composants du serveur React.
  3. Flexibilité améliorée : mise en œuvre plus facile des mises en page, des routages imbriqués, etc.
  4. Optimisations intégrées : fractionnement et prélecture automatiques du code.

Premiers pas avec le routeur d'applications

Commençons par configurer un nouveau projet Next.js 13 avec App Router. Ouvrez votre terminal et exécutez :

npx create-next-app@latest my-app
cd my-app

Lorsque vous y êtes invité, assurez-vous de sélectionner « Oui » pour « Voulez-vous utiliser App Router ? ».

Routage de base avec App Router

Dans l'App Router, chaque dossier représente un segment d'itinéraire. Créons une structure simple pour notre générateur de lettre de motivation :

app/
├── page.tsx
├── layout.tsx
├── cover-letter/
│   └── page.tsx
└── templates/
    └── page.tsx

Ici, page.tsx dans le dossier racine de l'application représente la page d'accueil. Les dossiers de lettre de motivation et de modèles créent des itinéraires pour ces pages respectives.

Dans app/page.tsx :

export default function Home() {
  return 

Welcome to the Cover Letter Generator

; }

Dans app/cover-letter/page.tsx :

export default function CoverLetter() {
  return 

Create Your Cover Letter

; }

Avec cette structure, vous pouvez accéder à / pour la page d'accueil et /cover-letter pour la page de création de la lettre de motivation.

Dispositions et itinéraires imbriqués

L'une des fonctionnalités puissantes d'App Router est la possibilité de créer des mises en page imbriquées. Ajoutons une mise en page commune pour notre application.

Dans app/layout.tsx :

export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    
      
        
        {children}
      
    
  );
}

Cette mise en page sera appliquée à toutes les pages de notre application, offrant une structure de navigation cohérente.

Itinéraires dynamiques

Les itinéraires dynamiques sont cruciaux pour les applications qui génèrent du contenu basé sur des paramètres. Implémentons un itinéraire dynamique pour afficher des modèles de lettre de motivation spécifiques.

Créez un nouveau fichier : app/templates/[id]/page.tsx :

export default function Template({ params }: { params: { id: string } }) {
  return 

Template {params.id}

; }

Maintenant, accéder à /templates/1 ou /templates/formal affichera ce composant avec l'identifiant respectif.

Composants du serveur et récupération de données

Next.js 13 introduit les composants React Server, nous permettant de récupérer des données sur le serveur. Implémentons cela dans notre générateur de lettre de motivation.

Dans app/cover-letter/page.tsx :

async function getTemplates() {
  // Simulate API call
  return [
    { id: 1, name: 'Professional' },
    { id: 2, name: 'Creative' },
    { id: 3, name: 'Academic' },
  ];
}

export default async function CoverLetter() {
  const templates = await getTemplates();

  return (
    

Create Your Cover Letter

    {templates.map(template => (
  • {template.name}
  • ))}
); }

Ce composant récupère les données sur le serveur, améliorant ainsi les performances et le référencement.

Liens et navigation

Pour la navigation côté client, utilisez le composant Link de Next.js. Mettez à jour votre app/layout.tsx :

import Link from 'next/link';

export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    
      
        
        {children}
      
    
  );
}

Application concrète : générateur de lettre de motivation

Maintenant que nous avons couvert les bases, voyons comment ces concepts sont appliqués dans un projet réel. Le projet Resumate-NextJS sur GitHub est un excellent exemple de générateur de lettre de motivation construit avec Next.js.

Principaux points à retenir de ce projet :

  1. Routage structuré : le projet utilise une structure de routage claire, séparant les préoccupations entre les différentes pages et composants.

  2. Rendu côté serveur : utilise les capacités SSR de Next.js pour améliorer les performances et le référencement.

  3. Routes API : implémente des routes API pour la logique côté serveur, démontrant comment gérer les soumissions de formulaires et le traitement des données.

  4. Style : utilise Tailwind CSS pour une conception d'interface utilisateur réactive et propre.

  5. State Management : implémente l'API de contexte pour gérer l'état des applications entre les composants.

Concepts avancés

À mesure que vous vous familiariserez avec App Router, explorez ces concepts avancés :

  1. Routes parallèles : affichez plusieurs pages dans la même mise en page.
  2. Routes d'interception : personnalisez le comportement de routage pour des scénarios spécifiques.
  3. Gestionnaires de route : créez des points de terminaison d'API dans la structure du routeur d'application.
  4. Middleware : ajoutez une logique personnalisée côté serveur à vos itinéraires.

Meilleures pratiques et conseils

  1. Exploiter les composants du serveur : utilisez-les pour la récupération de données et les calculs lourds.
  2. Optimiser les images : utilisez le composant Next.js Image pour une optimisation automatique.
  3. Mettez en œuvre une amélioration progressive : assurez-vous que votre application fonctionne sans JavaScript pour une meilleure accessibilité.
  4. Utilisez TypeScript : pour améliorer l'expérience des développeurs et la qualité du code.
  5. Mises à jour régulières : gardez votre version Next.js à jour pour bénéficier des dernières fonctionnalités et optimisations.

Conclusion

Le routeur d'applications Next.js 13 représente une avancée significative dans le développement d'applications React. En fournissant un système de routage intuitif basé sur un système de fichiers et en exploitant la puissance des composants React Server, il permet aux développeurs de créer des applications Web performantes, évolutives et maintenables.

Comme démontré avec l'exemple du générateur de lettre de motivation, l'App Router simplifie le processus de création d'applications Web complexes et dynamiques. Que vous créiez un simple site de portfolio ou une application Web complexe, la maîtrise d'App Router améliorera considérablement votre expérience de développement Next.js.

N'oubliez pas que la meilleure façon d'apprendre est de faire. Clonez le référentiel Resumate-NextJS, expérimentez le code et essayez d'implémenter vos propres fonctionnalités à l'aide d'App Router. Bon codage !

Déclaration de sortie Cet article est reproduit sur : https://dev.to/priyansh0510/nextjs-13-app-router-a-comprehensive-guide-with-real-world-example-17dn?1 En cas d'infraction, veuillez contacter study_golang @163.com supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3