src/integrations/Kameleoon/sitecode.ts.
El dominio de su script de Kameleoon puede diferir entre proyectos. En función de su fecha de creación, sus proyectos pueden estar alojados en
kameleoon.eu o en kameleoon.io. Utilice siempre el dominio mostrado para su proyecto dentro de la aplicación Kameleoon.Visión general
- Precargue el motor de Kameleoon para que el navegador lo descargue cuanto antes y lo almacene en caché.
- Aplique CSS anti-flicker para ocultar el contenido hasta que el motor esté listo, evitando saltos de diseño.
- Ejecute el motor después de la hidratación para evitar advertencias o discrepancias en la hidratación de React.
Componentes
Esta integración utiliza dos componentes que trabajan conjuntamente para garantizar una carga fluida y evitar el flickering durante la hidratación.1. Server Component
Coloque este componente dentro del <head> de su layout principal.
Sus responsabilidades son:
- Inyectar CSS anti-flicker durante el SSR para evitar parpadeos de la UI.
- Precargar el archivo
engine.jspara que la descarga comience lo antes posible.
KameleoonHead.tsx
2. Client Component
Coloque este componente al principio del <body> para controlar con precisión los tiempos de ejecución.
Este componente:
- Elimina los estilos anti-flicker después de la hidratación.
- Carga dinámicamente el
engine.jsde Kameleoon. - Garantiza que el script se cargue sin bloquear el renderizado.
KameleoonHydrationReady.tsx
Nota: El timeout anti-flicker predeterminado es de500 ms. AjustekameleoonLoadingTimeoutsi es necesario.
Uso en RootLayout
Ejemplo de cómo combinar ambos componentes:
layout.tsx
Conclusiones clave
- Protección anti-flicker en SSR
- Ejecución del script consciente de la hidratación
- Carga asíncrona del motor
- Timeout de respaldo para mayor fiabilidad
- Sin scripts bloqueantes
- Funciona con layouts de Next.js, streaming y React Server Components