Skip to main content
Hay disponible una integración lista para producción en este repositorio: https://github.com/Kameleoon/setup-engine-nextjs Asegúrese de sustituir el sitecode por el suyo en 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

  1. Precargue el motor de Kameleoon para que el navegador lo descargue cuanto antes y lo almacene en caché.
  2. Aplique CSS anti-flicker para ocultar el contenido hasta que el motor esté listo, evitando saltos de diseño.
  3. 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.js para que la descarga comience lo antes posible.
Consulte 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.js de Kameleoon.
  • Garantiza que el script se cargue sin bloquear el renderizado.
Consulte KameleoonHydrationReady.tsx
Nota: El timeout anti-flicker predeterminado es de 500 ms. Ajuste kameleoonLoadingTimeout si es necesario.

Uso en RootLayout

Ejemplo de cómo combinar ambos componentes:
Consulte 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
Con esta configuración, su aplicación Next.js cargará Kameleoon de manera eficiente y evitará problemas relacionados con la hidratación.