理解 Astro 的页面、组件与布局封面
发布于

理解 Astro 的页面、组件与布局

用三个简单概念理解 Astro 项目是怎样组合出完整网页的。

完整教程入门Astro组件设计路由

第一次打开 Astro 项目时,.astro 文件可能有些陌生。其实可以先把它理解为三层结构:页面、组件和布局。

页面决定网址

src/pages/ 采用基于文件的路由:

  • src/pages/index.astro 对应 /
  • src/pages/about.astro 对应 /about
  • src/pages/blog/index.astro 对应 /blog

文件放在哪里,通常就决定了浏览器中的访问路径。

组件负责复用

导航、页脚、日期等会出现在多个页面中,因此适合拆成组件。例如:

---
const { text } = Astro.props;
---

<span class="tag">{text}</span>

组件可以接收属性,也可以拥有自己的样式。修改一次,所有使用它的页面都会更新。

布局负责统一结构

文章页通常都有相同的标题、日期、封面和正文区域。布局把这些公共部分集中起来,具体文章只需要提供内容。

在这个博客中,BlogPost.astro 就是文章布局。它接收文章信息,并通过 <slot /> 放入 Markdown 转换后的正文。

一个实用判断方法

  • 需要生成独立网址:放进 pages
  • 会被多个地方使用:做成 components
  • 多个页面共享大块结构:做成 layouts

有了这套判断标准,项目结构会自然得多。