Deux types de composants
Fait partie de la section L'essentiel de Next.js du Journey React de Coddy — leçon 17 sur 47.
Chaque composant que vous avez écrit jusqu'à présent dans cette section s'est exécuté dans un endroit que vous n'avez peut-être pas remarqué : sur le serveur. Il ne s'agit pas d'un mode spécial que vous avez activé : c'est le comportement par défaut, et c'est l'idée fondamentale la plus importante dans Next.js.
Il existe exactement deux types de composants, et chacun vous apporte quelque chose que l'autre ne peut pas vous offrir.
Composants serveur : le choix par défaut
- Ils s'exécutent une fois, sur le serveur, avant l'envoi de la page
- Ils peuvent être
async, ce qui leur permet d'utiliserawaitdirectement dans le composant - Ils n'envoient aucun JavaScript au navigateur : l'utilisateur télécharge le résultat, pas le code
Le problème : au moment où la page atteint le navigateur, un composant serveur est terminé. C'est une capture instantanée. Il ne peut rien retenir, réagir à un clic ou changer.
Composants `client` : s'inscrire
Lorsque vous avez besoin que la page soit interactive, vous intégrez un fichier dans le navigateur avec une seule ligne tout en haut :
'use client';Cela marque le fichier comme un client component, et seuls les client components peuvent utiliser :
- Les Hooks :
useState,useEffect, et autres - Les gestionnaires d'événements :
onClick,onChange, … - Les API du navigateur :
window,localStorage
Remarquez le compromis. Un composant serveur est rapide et silencieux mais figé. Un composant client est vivant mais son code doit être téléchargé et exécuté dans le navigateur.
La question que vous vous poserez désormais pour chaque composant n'est donc pas « lequel est-ce que je préfère ? » mais « cet élément spécifique doit-il réagir aux actions de l'utilisateur ? » Si la réponse est non (ce qui est généralement le cas), laissez-le sur le serveur.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de L'essentiel de Next.js
1Pourquoi Next.js
Ce que Next.js apporteLe dossier AppVotre première pageRécapitulatif : Pourquoi Next.js4Serveur & Client
Deux types de composantsLire l'erreurLa ligne 'use client'Garder les parties client de petite tailleServeur dans le clientRécapitulatif : Serveur & Client2Routage et liens
Les dossiers sont des routesRoutes imbriquéesLier des pagesRoutes dynamiquesPages non trouvéesRécapitulatif : Routage