Passer au contenu principal
Créez des éléments interactifs dans votre documentation à l’aide de composants React et de hooks directement dans vos fichiers MDX.

Composants en ligne

Déclarez des composants directement dans votre fichier MDX :

Importer des composants

Les fichiers de composants doivent se trouver dans le dossier /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.
Créez un fichier de composant dans snippets/ :
/snippets/color-generator.jsx
Puis importez-le et utilisez-le :

Considérations

  • Rendu côté client uniquement : Les composants personnalisés s’affichent dans le navigateur après le chargement de la page, ils ne figurent donc pas dans le HTML rendu côté serveur. Cela s’applique aux composants que vous définissez avec export dans un fichier MDX et aux composants que vous importez par leur nom depuis un snippet, comme import { ColorGenerator } from "/snippets/color-generator.jsx". Les snippets MDX que vous importez en tant que contenu, comme import MySnippet from "/snippets/my-snippet.mdx", sont rendus côté serveur.
  • SEO : Comme les composants personnalisés ne figurent pas dans le HTML initial, les moteurs de recherche peuvent ne pas indexer complètement leur contenu.
  • Chargement initial : Les visiteurs peuvent voir un flash ou un décalage de mise en page pendant le rendu des composants personnalisés. Pour le contenu qui doit apparaître dans le HTML initial ou ne doit pas se décaler au chargement, utilisez plutôt des composants intégrés comme les cartes et les colonnes. La plupart des composants intégrés sont rendus côté serveur.
  • 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 useMemo ou useCallback lorsque cela est pertinent.
  • Réduisez les re-rendus : Décomposez les grands composants en composants plus petits.
  • Lazy loading : Le code des composants ne peut pas être chargé de façon différée. Tous les composants sont chargés avec la page. Si un composant effectue des opérations gourmandes en ressources lorsqu’il est monté, comme la récupération de données ou des calculs lourds, utilisez le rendu conditionnel pour différer son montage jusqu’à une interaction de l’utilisateur.