Gatsby: Mises en page et modèles - Comment sont-ils censés fonctionner et comment fonctionnent-ils actuellement ?

Créé le 11 juil. 2017  ·  3Commentaires  ·  Source: gatsbyjs/gatsby

Ces deux concepts semblent redondants. Et j'ai vu des problèmes suggérant qu'ils ne sont pas complètement résolus dans la V1. Quelqu'un peut-il clarifier comment ils devraient travailler et comment ils le font ?

1) Pourquoi les mises en page et les composants de modèle existent-ils ?

1) Comment sélectionnez-vous des mises en page alternatives pour le contenu ? (J'ai vu un champ frontmatter dans le démarreur du blog, mais je n'ai pas pu le tracer à un effet réel. En tout cas, cela semble être le genre de chose que vous feriez dans createPages, pas un remplacement de frontmatter intégré ne ' c'est ça ?)

2) Comment fonctionnent les modèles imbriqués ? Ou comment devraient-ils fonctionner? Ou pourquoi en auriez-vous besoin si vous pouviez sélectionner différents composants de modèle pour différentes pages ?

Merci!

Commentaire le plus utile

vous pouvez prendre Layout comme modèle d'ordre supérieur qui contrôle d'autres modèles et transmet les composants globaux tels que Nav, Footer..., et utiliser des modèles spécifiques pour différencier le contenu. Par exemple, si je créais une mise en page avec barre de navigation et pied de page, et deux modèles nommés Pages et Blogs, les pages et les blogs prendraient le pied de page de la barre de navigation des mises en page et auraient un contenu différent.

Tous les 3 commentaires

re 1) Les composants de modèle sont destinés aux types de pages, par exemple les articles de blog, les pages de documentation, etc. Les composants de mise en page sont destinés à tout ce qui est partagé entre les pages, par exemple les en-têtes, les pieds de page, les barres latérales, etc. Lisez également https://www.gatsbyjs.org/docs/building-with-components/

re 2) vous ne pouvez pas en ce moment. C'est quelque chose que nous soutiendrons à l'avenir. Ces champs de frontmatter étaient vieux et non utilisés. Désolé pour ça. Je viens de les supprimer. Les publications Markdown sont créées avec createPage donc un moyen possible d'autoriser une publication Markdown à remplacer la mise en page par défaut serait d'utiliser frontmatter pour sélectionner une mise en page.

re 3) également pas encore pris en charge mais prévu pour l'avenir. Un cas d'utilisation est que vous avez une mise en page globale avec un en-tête/pied de page, puis une sous-section du site qui a une navigation secondaire dans la barre latérale.

vous pouvez prendre Layout comme modèle d'ordre supérieur qui contrôle d'autres modèles et transmet les composants globaux tels que Nav, Footer..., et utiliser des modèles spécifiques pour différencier le contenu. Par exemple, si je créais une mise en page avec barre de navigation et pied de page, et deux modèles nommés Pages et Blogs, les pages et les blogs prendraient le pied de page de la barre de navigation des mises en page et auraient un contenu différent.

Merci, cela clarifie les choses. ??

Cette page vous a été utile?
0 / 5 - 0 notes