sections
sections 目录中包含了主题所有的组件。组件是页面模版搭建的核心元素,用于定义页面模块的结构和功能。商家可以在主题编辑器中自由添加、删除、移动、或编辑组件内容。
目录结构
在 sections 目录下,每个组件必须有一个目录,且该目录下有一个与目录名同名的 .html 文件。
组件可以由三种文件类型组成,支持 .html .css 和 .js 文件后缀格式。
- .html(必须):用于定义 section 的 HTML 布局。
- .css(可选):用于定义 section 的样式。
- .js(可选):用于定义 section 的行为交互。
sections
├── announcement-bar
│ ├── announcement-bar.css
│ ├── announcement-bar.js
│ └── announcement-bar.html
├── blog
│ ├── blog.css
│ └── blog.html
创建组件
每个组件的 .html 文件中,通常包含两个部分:
- HTML:用于定义组件的布局。
- schema:用于定义组件的配置,此配置将在主题编辑器中展示为商家可自定义的配置。
如下以精选商品(featured-collection)为例,展示创建一个组件的步骤。
1. 添加组件文件
在 sections 目录下新建一个 featured-collection 的目录,再新建一个同名的 .html 文件。
sections
└── featured-collection
└── featured-collection.html
2. 定义组件 schema 配置
在 featured-collection.html 文件下添加 schema。
<!-- sections/featured-collection/featured-collection.html -->
{{#schema}}
{
"name": "featured-collection",
"settings": [
{
"type": "collection",
"id": "collection",
"label": "collection"
}
]
}
{{/schema}}
3. 渲染组件 schema 配置
使用组件 schema 配置,需要在 HTML 中通过 section.settings 获取配置。
通过 collection 控件 获取商家选中分类的标题。
获取组件配置的 id 为 collection。
以下例子说明了如何获取商家配置分类的标题:
<!-- sections/featured-collection/featured-collection.html -->
<section>
title: {{section.settings.collection.title}}
</section>
{{#schema}}
{
"name": "featured-collection",
"settings": [
{
"type": "collection",
"id": "collection",
"label": "collection"
}
]
}
{{/schema}}
输出:
<section>
title: /collections/foo
</section>
提示
schema 只用于 声明组件配置,它不会输出内容。
创建私有区块
在组件中支持使用区块,可以把功能模块拆分成区块,然后在组件进行组装。
提示
更多与区块相关的内容请参阅 blocks。