src/integrations/Kameleoon/sitecode.ts.
Le domaine de votre script Kameleoon peut différer entre les projets. Selon leur date de création, vos projets peuvent être hébergés sous
kameleoon.eu ou kameleoon.io. Utilisez toujours le domaine affiché pour votre projet dans l’application Kameleoon.Vue d’ensemble
- Préchargez le moteur Kameleoon afin que le navigateur le télécharge tôt et le mette en cache.
- Appliquez un CSS anti-flicker pour masquer le contenu jusqu’à ce que le moteur soit prêt, évitant ainsi les décalages de mise en page.
- Exécutez le moteur après l’hydratation pour éviter les avertissements ou désynchronisations d’hydratation React.
Composants
Cette intégration utilise deux composants qui fonctionnent ensemble pour assurer un chargement fluide et empêcher le clignotement pendant l’hydratation.1. Server Component
Placez ce composant à l’intérieur de la balise <head> de votre layout principal.
Ses responsabilités sont :
- Injecter le CSS anti-flicker pendant le SSR pour prévenir les flashs d’interface
- Précharger le fichier
engine.jsafin que le téléchargement commence dès que possible
KameleoonHead.tsx
2. Client Component
Placez ce composant tout en haut de la balise <body> afin de contrôler précisément le moment d’exécution.
Ce composant :
- Supprime les styles anti-flicker après l’hydratation
- Charge dynamiquement le
engine.jsde Kameleoon - Garantit que le script se charge sans bloquer le rendu
KameleoonHydrationReady.tsx
Note : Le timeout anti-flicker par défaut est de500 ms. AjustezkameleoonLoadingTimeoutsi nécessaire.
Utilisation dans RootLayout
Exemple de combinaison des deux composants :
layout.tsx
Points clés
- Protection anti-flicker en SSR
- Exécution du script consciente de l’hydratation
- Chargement asynchrone du moteur
- Timeout de secours pour la fiabilité
- Aucun script bloquant
- Fonctionne avec les layouts Next.js, le streaming et les React Server Components