コンパイル・プロセスは、カスタム・コンパイラでさらに拡張できます。カスタム・コンパイラをコールして、ページ・レイアウト、セクション・レイアウト、カスタム・コンポーネントまたはコンテンツ・レイアウトをページにコンパイルでき、実行時にコンポーネントを動的に追加する必要がなくなります。
カスタム・コンパイラがコンポーネントに対して存在しないか、コンポーネント・コンパイラがマークアップを返さない場合、コンパイルされていないようにコンポーネントが実行時にレンダリングされます。
カスタム・コンパイラは、次のコンポーネントに対してサポートされています。
次のサンプルは、ページ・レイアウトおよびコンテンツ・レイアウト・コンパイラを示しています。セクション・レイアウトおよびカスタム・コンポーネントのコンパイラは、コンテンツ・レイアウトのコンパイラと同じモデルに従います。
カスタム・コンパイラが存在しない場合、コンポーネントはrender.js
ファイルでレンダリングします。
カスタム・コンパイラが存在してコールされると、生成されたHTMLがページに挿入されます。カスタム・コンパイラが、コンポーネントで実行時にJavaScriptハイドレーションが必要であることを示す場合もあります。このような場合、render.js
ファイル内のコンポーネントのhydrate()
関数がコールされます。コンポーネントでハイドレーションが不要な場合、コンポーネントのrender.js
ファイルはロードされません。
注:
コンパイルは実行時(公開済サイト)専用機能です。サイトが編集、ナビゲーションまたはプレビュー・モードで表示される場合、ページは通常どおりに動作し、すべてのコンポーネントは常に動的にページに追加されます。