如果你了解 HTML,那么你已经有能力编写第一个 Astro 组件了。
Astro 组件语法是 HTML 的超集。这个语法设计用来让任何有编写 HTML 或 JSX 经验的人感到熟悉 ,并增加了对组件和 JavaScript 表达式的支持。
你可以在 Astro 组件的两个代码围栏(---
)之间的 frontmatter 组件脚本内部定义本地 JavaScript 变量。然后,可以使用类似 JSX 的表达式将这些变量注入到组件的 HTML 模板中!
可以使用花括号语法将局部变量添加到 HTML 中:
可以在花括号中使用局部变量将属性值传递给 HTML 元素和组件:
可以在类 JSX 函数中使用局部变量来产生动态生成的 HTML 元素:
Astro 可以使用 JSX 逻辑运算符和三元表达式有条件地显示 HTML。
你还可以通过将变量设置为 HTML 标签或组件导入来使用动态标签:
当使用动态标签时:
Astro 支持使用 <Fragment> </Fragment>
或简写成 <> </>
包装多个元素。
当添加set:*
directives时,片段对于避免包装元素也很有用,如下面的示例所示:
Astro 组件的语法是 HTML 的超集。它的设计使得任何有 HTML 或 JSX 经验的人都感到熟悉,但 .astro
文件和 JSX 之间有几个关键的区别。
在 Astro 中,所有 HTML 属性都使用标准的 kebab-case
格式,而不是 JSX 中使用的 camelCase
。这甚至适用于 class
,而 React 不支持。
一个 Astro 组件模版可以渲染多个元素,无需像 JavaScript 或 JSX 那样将所有内容都包装在单个 <div>
或 <>
中。
在 Astro 中,可以使用标准的 HTML 注释或 JavaScript 风格的注释。