Composants en ligne
Importer des composants
/snippets/. En savoir plus sur les snippets réutilisables.
Les imports imbriqués ne sont pas pris en charge. Importez tous les composants référencés directement dans le fichier MDX parent.
snippets/ :
/snippets/color-generator.jsx
Considérations
- SEO : Les moteurs de recherche peuvent ne pas indexer complètement le contenu dynamique rendu côté client.
- Chargement initial : Les visiteurs peuvent voir un flash avant que les composants ne s’affichent.
- Accessibilité : Assurez-vous que les lecteurs d’écran annoncent les changements de contenu dynamique.
- Optimisez les tableaux de dépendances : N’incluez que les dépendances nécessaires dans
useEffect. - Mémoïsez les opérations coûteuses : Utilisez
useMemoouuseCallbacklorsque cela est pertinent. - Réduisez les re-rendus : Décomposez les grands composants en composants plus petits.
- Lazy loading : Différez le rendu des composants complexes jusqu’à ce qu’ils soient nécessaires afin d’améliorer le temps de chargement initial de la page. Comme le bac à sable MDX ne prend en charge ni
React.lazyniimport()dynamique, conditionnez plutôt les composants lourds à une interaction de l’utilisateur ou à leur visibilité. Voir Différer le rendu des composants lourds.
Différer le rendu des composants lourds
React.lazy, Suspense et import() dynamique ne sont pas disponibles dans le bac à sable MDX. Pour obtenir le même bénéfice, affichez d’abord un espace réservé léger et ne montez le composant coûteux qu’après l’action explicite du lecteur. Cela garde le chargement initial de la page rapide tout en permettant aux lecteurs d’interagir avec le composant complet.
L’exemple ci-dessous garde le ColorGenerator de la section précédente non monté jusqu’à ce que le lecteur clique sur Load color generator :
IntersectionObserver configuré dans un useEffect. Le schéma est identique : maintenez show à false jusqu’au déclenchement, puis renvoyez le composant lourd.