src/integrations/Kameleoon/sitecode.ts で 必ず sitecode を独自のものに置き換えてください。
Kameleoon スクリプトのドメインはプロジェクトによって異なる場合があります。作成日に応じて、プロジェクトは
kameleoon.eu または kameleoon.io のいずれかでホストされる可能性があります。常に Kameleoon App でプロジェクトに表示されているドメインを使用してください。概要
- Kameleoon エンジンをプリロード して、ブラウザが早期にダウンロードしキャッシュするようにします。
- アンチフリッカー CSS を適用 してエンジンの準備が整うまでコンテンツを非表示にし、レイアウトシフトを防ぎます。
- ハイドレーション後にエンジンを実行 して、React のハイドレーション警告や不整合を回避します。
コンポーネント
この統合では、スムーズな読み込みを保証し、ハイドレーション中のちらつきを防ぐために連携する 2つのコンポーネント を使用します。1. Server Component
このコンポーネントは メインレイアウトの <head> 内 に配置してください。
その責務は以下のとおりです:
- SSR 中にアンチフリッカー CSS を注入して UI のちらつきを防ぐ
- できるだけ早くダウンロードが開始されるよう
engine.jsファイルをプリロードする
KameleoonHead.tsx を参照してください。
2. Client Component
このコンポーネントは、実行タイミングを正確に制御するために <body> の最上部 に配置してください。
このコンポーネントは:
- ハイドレーション後にアンチフリッカースタイルを削除します
- Kameleoon の
engine.jsを動的に読み込みます - スクリプトがレンダリングをブロックせずに読み込まれるようにします
KameleoonHydrationReady.tsx を参照してください。
注: デフォルトのアンチフリッカータイムアウトは500 msです。必要に応じてkameleoonLoadingTimeoutを調整してください。
RootLayout での使用
両方のコンポーネントを組み合わせる例:
layout.tsx を参照してください。
重要なポイント
- SSR でのアンチフリッカー保護
- ハイドレーションを認識したスクリプト実行
- 非同期エンジン読み込み
- 信頼性のためのフォールバックタイムアウト
- ブロッキングスクリプトなし
- Next.js レイアウト、ストリーミング、React Server Components で動作