描述列表 descriptions
数据展示组件。三层同源:无头内核给出解剖与状态机,Vue 组件与自定义元素只是它的两层外壳,行为完全一致。
示例
基础用法
根默认渲染成 dl,标签渲染成 dt、取值渲染成 dd;不传 columns 即每行一组
- 订单号
- XH-20260810-0042
- 下单时间
- 2026-08-10 09:31
- 支付方式
- 余额支付
列数
columns 决定每行摆几组,一到六列;排版走 CSS Grid,不用表格
- 姓名
- 张三
- 工号
- A-1024
- 部门
- 技术部
- 岗位
- 前端工程师
- 入职
- 2024-03-01
- 座机
- 8021
标签位置
placement 决定标签在上还是在左,不传即在上
标签在上(默认)
- 订单号
- XH-20260810-0042
- 下单时间
- 2026-08-10 09:31
标签在左
- 订单号
- XH-20260810-0042
- 下单时间
- 2026-08-10 09:31
外框
bordered 画一圈描边,并在格与格之间补上网格线
- 商品
- 机械键盘
- 单价
- ¥499.00
- 数量
- 2
- 小计
- ¥998.00
尺寸
size 换的是每格的内边距、组与组的间距与整体字号,不传 size 即默认档
- 小 · 状态
- 已发货
- 小 · 承运商
- 顺丰速运
- 默认 · 状态
- 已发货
- 默认 · 承运商
- 顺丰速运
- 大 · 状态
- 已发货
- 大 · 承运商
- 顺丰速运
产物
| 层 | 值 |
|---|---|
| 自定义元素 | <xh-descriptions> |
| Vue 组件 | XhDescriptionsItem XhDescriptionsLabel XhDescriptionsRoot XhDescriptionsValue |
| 状态机 | 无,connect 直接由 props 算属性 |
| 皮肤 | @xihan-ui/styles/descriptions.css |
解剖
部件名即 data-part 属性值,也是皮肤的选择器。加粗的是必备部件,不渲染它组件不工作(Web Components 适配器会在诊断通道上报 wc.missing-part)。
data-scope="descriptions":root · item · label · value
Props
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
bordered | boolean | 外框:给整份描述画一圈描边,并在格与格之间画网格线。 | |
columns | DescriptionsColumns | 每行摆几组,一到六列;不写即每行一组。 | |
placement | DescriptionsPlacement | 标签的位置:top / left;不写即标签在上。 | |
size | Size | 尺寸:sm / md / lg。 |
connect API
connect 产出的对象。getXxxProps() 铺到对应部件的宿主元素上,其余是可读状态与操作入口。
| 成员 | 类型 | 说明 |
|---|---|---|
getRootProps | () => T['element'] | |
getItemProps | () => T['element'] | |
getLabelProps | () => T['element'] | |
getValueProps | () => T['element'] |
键盘
规格出处:W3C APG
无键盘交互(不接收焦点,或焦点行为完全由原生元素提供)。
