【发布时间】:2020-06-08 21:57:23
【问题描述】:
我们需要 Gatsby 项目文件结构中的 templates 文件夹做什么?我可以使用这个文件夹来存储我在主页上重复使用的普通组件,例如“英雄”或“信息”组件等吗?
【问题讨论】:
标签: reactjs templates filesystems gatsby file-structure
我们需要 Gatsby 项目文件结构中的 templates 文件夹做什么?我可以使用这个文件夹来存储我在主页上重复使用的普通组件,例如“英雄”或“信息”组件等吗?
【问题讨论】:
标签: reactjs templates filesystems gatsby file-structure
/src/templates 文件夹不做任何特别的事情(例如,与 /src/pages 文件夹不同),但它通常用于存储您为 creating programatically 的页面的模板。如果您愿意,您也可以简单地将任何页面模板存储在 /src/components 文件夹中并完全删除 /src/templates。
【讨论】:
/templates 文件夹的目的是存储模板(嗯?),也就是说,所有将通过createPage API 以编程方式创建的页面将共享相同的内部结构(组件、页眉、页脚、等)但不同的内容。理想情况下,您将拥有post.js、legal.js(适用于所有条款和条件、服务条款等),以便为您从 CMS 检索到的所有数据共享相同的结构,例如:
posts.forEach(({ node }, index) => {
createPage({
path: node.fields.slug,
component: path.resolve(`./src/templates/posts.js`),
context: { id: node.id },
})
})
}
它仅用于结构化代码并创建更干净的结构。对我来说,而不是 Robin Métral answer 我会保留它,如果您不使用它并且保持为空,则该文件将不会被提交,但非常有用,并且程序化页面创建是 Gatsby 的主要优势之一,而且对保持结构清晰明了很有帮助。
【讨论】:
/src/components 中。因此,这是个人喜好问题。
/component 或 /template,例如 gatsbyjs.org/docs/creating-and-modifying-pages 显示。所以,我个人的偏好是保持和维护逻辑和文件夹结构。