Skip to main content
Los componentes de React son una forma poderosa de crear elementos interactivos y reutilizables en tu documentación.

Uso de componentes de React

Puedes crear componentes de React directamente en tus archivos MDX utilizando los hooks de React.

Ejemplo

Este ejemplo declara un componente Counter y luego lo utiliza con <Counter />.
El contador se renderiza como un componente interactivo de React.

Importación de componentes

Puedes importar componentes desde tu carpeta snippets. A diferencia de React, no puedes importar componentes desde cualquier archivo MDX. Los componentes reutilizables deben referenciarse desde archivos dentro de la carpeta snippets. Obtén más información sobre fragmentos reutilizables.

Ejemplo

Este ejemplo declara un componente ColorGenerator que utiliza varios hooks de React y luego lo usa en un archivo MDX. Crea el archivo color-generator.jsx en la carpeta snippets:
/snippets/color-generator.jsx [expandible]
Importa el componente ColorGenerator y utilízalo en un archivo MDX:
El generador de colores se renderiza como un componente interactivo de React.

Consideraciones

Los componentes con hooks de React se renderizan del lado del cliente, lo que tiene varias implicaciones:
  • SEO: Es posible que los motores de búsqueda no indexen por completo el contenido dinámico.
  • Carga inicial: Los visitantes pueden ver un destello de contenido de carga antes de que se rendericen los componentes.
  • Accesibilidad: Asegúrate de que los cambios de contenido dinámico se anuncien a los lectores de pantalla.
  • Optimiza los arreglos de dependencias: Incluye solo las dependencias necesarias en los arreglos de dependencias de useEffect.
  • Memoiza cálculos complejos: Usa useMemo o useCallback para operaciones costosas.
  • Reduce las re-renderizaciones: Divide los componentes grandes en otros más pequeños para evitar re-renderizaciones en cascada.
  • Carga diferida (lazy loading): Considera cargar de forma diferida los componentes complejos para mejorar el tiempo de carga inicial de la página.