你在这里。看看这个问题与其他知识怎样相连。
选择节点前往页面 · 展开后可留在地图中阅读
一个问题
Web Device 的组件是什么?
区分核心 primitive、Web-only 类型与主题组件,并查看默认主题目录。
- 内容记录提供字段→
- 页面 layout传入属性与插槽→
- 组件实现输出结构与样式→
- 页面呈现
Web Device 的主题组件,是可复用的 Web 呈现实现。例如,portal-header 负责导航,post-hero 负责文章头部,content-card 负责内容卡片。它们不是新增的 AUP 核心 primitive。
仍以文章页为例:布局选用 post-hero 来显示标题、作者和封面,选用 detail-content 来承载正文。同一个标题区组件能用于很多文章,变化的是传给它的数据。
有些组件会预留带名字的位置,叫 slot(插槽)。例如“正文位置”接收文章内容,“侧栏位置”接收相关文章。布局决定把哪一部分放进哪个位置;组件决定这些位置怎样显示。它不是另一个数据存储服务。
实现上,manifest.json 描述组件接受的属性,render.js 生成内容,style.css 提供样式;需要客户端交互时再有 script.js。这些文件把可复用组件的接口与行为落实下来。
站点可以在 .web/components/ 定义自己的组件或覆盖主题中的同名组件。本 Learning 的知识地图也是这种站点组件:它不会因为名字叫 map 就变成 AUP 的地理 map primitive。
用当前 Learning 页面走一遍
这张页面本身就把几个职责分开了:
- 内容记录保存问题、答案、正文和关联节点。修改解释文字,改的是内容。
- 页面 layout把标题交给
learning-map的 header 模式,把正文放进content插槽,把关联内容交给同一组件的 detail 模式。它负责组合。 - 组件属性把内容接到呈现上。例如
title=$meta.name表示把当前记录的名称传给组件的title属性;items=$source.nodes把布局声明的数据源结果交给组件。这里的$meta和$source是 Web Device 页面中的取值方式,不是任意 JSON 都能执行的表达式。 - 组件实现决定标题怎样排版、关联节点怎样排列,以及知识地图如何响应拖动。调整这些呈现和交互,改的是站点组件。
这个例子是内容如何进入页面的连接。若要让一个按钮修改任务状态,还需要相应的动作、状态连接和授权;仅把组件显示出来,不会自动建立那条业务操作链。
默认主题里有哪些组件?
下面是核对源码版本中 默认主题目录的 27 项。这不是所有主题、所有站点或所有 Web widget 的总目录;站点可以继续扩展。
| 组件 | 用途 |
|---|---|
| access-gate | 正文里的预览或会员访问提示 |
book-reader | 把文档组织成翻阅式阅读视图 |
| content-card | 文章、新闻或活动卡片 |
| detail-content | 居中的详情正文与可选阅读导航 |
| detail-sidebar | 正文与侧栏布局 |
| event-card | 带日期和状态的活动列表 |
| event-hero | 活动详情页的日期、地点与报名入口 |
globe | WebGL 地球仪视觉 |
| hero-banner | 首页标题、说明与行动入口 |
key-pad | 方向键提示控件 |
leaf-shadow | 树影光线视觉叠层 |
| news-ticker | 滚动新闻标题 |
| page-sections | 把多个 slot 包成带可选标题的分区 |
| page-stack | 垂直堆叠 slot |
| platform-stack | 技术层次图 |
| portal-footer | 站点页脚导航 |
| portal-header | 站点主导航 |
| post-hero | 文章标题、作者、日期与封面 |
| product-frame | 承载真实截图或终端记录的展示外框 |
| product-frame-gallery | 多个产品展示外框的自适应排列 |
| product-hero | 产品页面首屏 |
| product-showcase | 产品功能卡片 |
| related-content | 关联内容区域 |
| site-home | 品牌首页整体呈现 |
| tag-list | 带链接的标签列表 |
| tech-hero | 技术主题页首屏 |
| technology-card | 技术介绍卡片 |
三种“组件”不要混在一起
- 核心 primitive:协议层的类型,例如
text、action。 - Web-only AUP 类型:只在 Web 运行时提供的额外节点类型,列在
AUP_WIDGETS,不能据此假定跨设备支持。 - Web Device 主题组件:页面组合使用的实现,例如
portal-header;其接口由组件 manifest 定义。
同一个词有时会在不同目录出现。判断一个名称属于哪一层,要看它的清单、接口和运行位置,不能只凭名字。
继续阅读
技术文档:查阅完整说明。
检查一下理解
portal-header 是 AUP 核心 primitive 吗?
不是。它是 Web Device 的主题组件,由 manifest 和 Web 实现定义,供页面 layout 组合使用。
沿着学习路径继续
- 分清协议、设备与组件第 8 / 9 步