これらの2つの概念は冗長に見えます。 そして、V1では完全に整理されていないことを示唆するいくつかの問題を見てきました。 誰かが彼らがどのように働くべきか、そして彼らがどのように行うべきかを明確にすることができますか?
1)レイアウトとテンプレートコンポーネントの両方が存在するのはなぜですか?
1)コンテンツの代替レイアウトをどのように選択しますか? (ブログスターターにフロントマターフィールドが表示されましたが、実際の効果を追跡することはできませんでした。いずれにせよ、これはcreatePagesで行うようなことのようであり、組み込みのフロントマターオーバーライドではありません。それ?)
2)ネストされたテンプレートはどのように機能しますか? または、どのように機能する必要がありますか? または、ページごとに異なるテンプレートコンポーネントを選択できるのに、なぜそれらが必要になるのでしょうか。
ありがとう!
re 1)テンプレートコンポーネントは、ブログ投稿、ドキュメントページなどのページタイプ用です。レイアウトコンポーネントは、ヘッダー、フッター、サイドバーなど、ページ間で共有されるすべてのもの用です。これらは非常に異なるため、両方とも必要です:-) https://www.gatsbyjs.org/docs/building-with-components/もお読み
re 2)今はできません。 これは私たちが将来サポートするものです。 それらのフロントマターフィールドは古く、使用されていませんでした。 申し訳ありません。 それらを削除しただけです。 マークダウン投稿はcreatePage
作成されるため、マークダウン投稿がデフォルトのレイアウトを上書きできるようにする1つの可能な方法は、frontmatterを使用してレイアウトを選択することです。
re 3)これもまだサポートされていませんが、将来的に計画されています。 1つの使用例は、ヘッダー/フッターと、セカンダリサイドバーナビゲーションを持つサイトのサブセクションを含むグローバルレイアウトがある場合です。
レイアウトを、他のテンプレートを制御し、Nav、Footer ...などのグローバルコンポーネントを渡す高次のテンプレートと見なし、特定のテンプレートを使用してコンテンツを区別することができます。 たとえば、ナビゲーションバーとフッターを使用して1つのレイアウトを作成し、ページとブログという名前の2つのテンプレートを作成した場合、ページとブログの両方がレイアウトからナビゲーションバーフッターを取得し、内部に異なるコンテンツが含まれます。
おかげで、これは物事をクリアします。 😀
最も参考になるコメント
レイアウトを、他のテンプレートを制御し、Nav、Footer ...などのグローバルコンポーネントを渡す高次のテンプレートと見なし、特定のテンプレートを使用してコンテンツを区別することができます。 たとえば、ナビゲーションバーとフッターを使用して1つのレイアウトを作成し、ページとブログという名前の2つのテンプレートを作成した場合、ページとブログの両方がレイアウトからナビゲーションバーフッターを取得し、内部に異なるコンテンツが含まれます。