Skip to Content
🎉 Utilisez JS efficacement →

🚀 Mise en place de Layouts (layout.tsx) pour une structuration globale dans Next.js

L’un des grands avantages du App Router (app/) est la gestion des layouts imbriquĂ©s grĂące aux fichiers layout.tsx. Cela permet de structurer l’interface sans recharger les Ă©lĂ©ments communs (ex: navigation, footer).


1ïžâƒŁ Qu’est-ce qu’un layout.tsx ?

📌 Un layout.tsx est un composant persistant qui englobe les pages enfants.
📌 Chaque dossier dans app/ peut avoir son propre layout.tsx.
📌 Un layout peut ĂȘtre imbriquĂ© pour organiser les sous-sections d’un site.

🛠 Exemple d’architecture avec des layouts :

app/ ├── layout.tsx → Layout principal (Header, Footer) ├── page.tsx → Page d’accueil "/" ├── dashboard/ │ ├── layout.tsx → Layout spĂ©cifique au dashboard │ ├── page.tsx → Page "/dashboard" │ ├── settings/ │ │ ├── page.tsx → Page "/dashboard/settings"

📍 Chaque page utilise son layout parent sans recharger les composants communs !


2ïžâƒŁ Exemple : CrĂ©ation d’un layout.tsx global

app/layout.tsx
export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="fr"> <body> <header> <nav> <ul> <li><a href="/">Accueil</a></li> <li><a href="/dashboard">Dashboard</a></li> </ul> </nav> </header> <main>{children}</main> <footer>© 2025 Mon Site</footer> </body> </html> ); }

💡 Explication :

  • ✅ Le layout.tsx entoure chaque page avec une structure HTML complĂšte.
  • ✅ La balise <main>{children}</main> affiche le contenu des pages enfants.
  • ✅ Le <header> et <footer> sont partagĂ©s sur toutes les pages !

3ïžâƒŁ Exemple : Layout spĂ©cifique pour le dashboard

app/dashboard/layout.tsx
export default function DashboardLayout({ children }: { children: React.ReactNode }) { return ( <section> <aside> <ul> <li><a href="/dashboard">Accueil</a></li> <li><a href="/dashboard/settings">ParamĂštres</a></li> </ul> </aside> <div className="content">{children}</div> </section> ); }

💡 Ce layout s’applique uniquement aux pages dans /dashboard.


4ïžâƒŁ DiffĂ©rence avec _app.tsx dans pages/

đŸ› ïž Feature🏗 _app.tsx (pages/)🚀 layout.tsx (app/)
Gestion du layoutUn seul _app.tsx globalUn layout.tsx par section
RechargementRechargement complet du layout✅ Layout persistant
PerformanceMoins optimisĂ©âœ… Moins de JS envoyĂ© cĂŽtĂ© client
FlexibilitĂ©Difficile d’imbriquer✅ ImbriquĂ© et modulaire

🎯 Conclusion : Pourquoi utiliser layout.tsx ?

✔ Meilleures performances → Le layout ne se recharge pas à chaque changement de page.
✔ Structure claire et modulaire → Permet d’organiser l’interface facilement.
✔ FacilitĂ© d’extension → PossibilitĂ© d’avoir plusieurs layouts pour diffĂ©rentes sections du site.

mis Ă  jour le