Componentes en línea
Importar componentes
/snippets/. Más información sobre fragmentos reutilizables.
Los imports anidados no son compatibles. Importa todos los componentes referenciados directamente en el archivo MDX padre.
snippets/:
/snippets/color-generator.jsx
Consideraciones
- Solo renderizado en el cliente: Los componentes personalizados se renderizan en el navegador después de que se carga la página, por lo que no están en el HTML renderizado en el servidor. Esto se aplica a los componentes que defines con
exporten un archivo MDX y a los componentes que importas por nombre desde un snippet, comoimport { ColorGenerator } from "/snippets/color-generator.jsx". Los snippets MDX que importas como contenido, comoimport MySnippet from "/snippets/my-snippet.mdx", se renderizan en el servidor. - SEO: Como los componentes personalizados no están en el HTML inicial, es posible que los motores de búsqueda no indexen completamente su contenido.
- Carga inicial: Los visitantes pueden ver un parpadeo o un desplazamiento del diseño mientras se renderizan los componentes personalizados. Para el contenido que debe aparecer en el HTML inicial o que no debe desplazarse al cargar, usa componentes integrados como tarjetas y columnas. La mayoría de los componentes integrados se renderizan en el servidor.
- Accesibilidad: Asegúrate de que los lectores de pantalla anuncien los cambios de contenido dinámico.
- Optimiza los arrays de dependencias: Incluye solo las dependencias necesarias en
useEffect. - Memoriza operaciones costosas: Usa
useMemoouseCallbackcuando proceda. - Reduce los renderizados: Divide los componentes grandes en otros más pequeños.
- Carga diferida: El código de los componentes no se puede cargar de forma diferida. Todos los componentes se cargan junto con la página. Si un componente realiza operaciones que consumen muchos recursos al montarse, como obtener datos o cálculos pesados, usa el renderizado condicional para posponer su montaje hasta que el usuario interactúe.