Next.js 15 introduit le fichier template
, un homologue de layout
, offrant un contrôle granulaire sur le comportement de la mise en page pendant la navigation. Ce guide clarifie les distinctions entre template
et layout
, décrivant leurs applications et leurs meilleures pratiques.
Un fichier Next.js template
définit des mises en page réutilisables qui actualisent leur état ou sont restituées lors des transitions de page. Cela diffère de layout
, qui préserve l'état lors des transitions.
Feature | Layout | Template |
---|---|---|
State Persistence | Retains state during route changes. | Resets state on each route change. |
Reusability | Provides consistent layouts across pages. | Similar to `layout`, but ensures fresh rendering for every page. |
Use Cases | Ideal for persistent elements like headers, sidebars, or footers. | Suitable for layouts needing resets or re-initialization per route, such as forms or dynamic content. |
Rendering | Doesn't re-render between sibling routes. | Re-renders with every route change. |
Utilisez template
lorsque :
Utilisez layout
lorsque :
Cet exemple met en évidence les différences layout
et template
.
Utilisation de layout
(L'État persiste) :
<code>// app/layout.tsx import './globals.css'; export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="en"> <body> <p>Header Content</p> {children} </body> </html> ); }</code>
layout
n'est pas restitué.Utilisation de template
(réinitialisations d'état) :
<code>// app/template.tsx import './globals.css'; export default function RootTemplate({ children }: { children: React.ReactNode }) { return ( <html lang="en"> <body> <p>Header Content</p> {children} </body> </html> ); }</code>
template
.template
excelle dans la gestion de contenu dynamique. Dans une application de commerce électronique, un fichier template
garantit la réinitialisation des filtres ou des entrées de recherche lors de la navigation entre les catégories de produits.
Exemple : Filtrage dynamique des produits
<code>// app/shop/template.tsx export default function ShopTemplate({ children }: { children: React.ReactNode }) { return ( <main><h1>Shop</h1> {children} </main> ); }</code>
La saisie de recherche est réinitialisée à chaque changement de catégorie, offrant une expérience utilisateur propre.
Évaluer les besoins de l'État : Utilisez layout
pour l'état persistant (navigation, authentification) ; utilisez template
pour réinitialiser les composants sensibles à l'état (formulaires, filtres dynamiques).
Évitez la surutilisation des modèles : template
est précieux, mais une surutilisation conduit à des rendus inutiles. Privilégiez layout
pour les composants statiques ou moins dynamiques.
Donner la priorité aux performances : Gardez les modèles concis, en évitant les calculs complexes ou les composants volumineux.
Tester la navigation : Vérifiez que votre choix layout
/template
correspond à l'expérience utilisateur, en particulier pour les éléments interactifs comme les formulaires ou les modaux.
Comprendre la distinction entre layout
et template
dans Next.js 15 est crucial pour créer des applications efficaces et conviviales. layout
offre persistance et stabilité, tandis que template
offre une flexibilité pour les réinitialisations d'état et les rendus dynamiques. L'utilisation efficace des deux fonctionnalités donne lieu à des applications performantes et intuitives.
Connectons-nous sur LinkedIn ou GitHub ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!