跳转到内容

骨架屏 skeleton

数据展示组件。三层同源:无头内核给出解剖与状态机,Vue 组件与自定义元素只是它的两层外壳,行为完全一致。

示例

基础用法

容器竖着码放骨架条,形状缺省是一行文字

形状

容器的 variant 是这一组的默认形状,单根骨架条自带 variant 就按自己的来

加载结束

loading 期间容器报 aria-busy,翻成 false 后整块收起,位置让给真内容

按版面占位

骨架条的宽高由内联样式与组件令牌定,占位形状贴着真内容将来的样子

产物

自定义元素<xh-skeleton>
Vue 组件XhSkeletonBone XhSkeletonRoot
状态机无,connect 直接由 props 算属性
皮肤@xihan-ui/styles/skeleton.css

解剖

部件名即 data-part 属性值,也是皮肤的选择器。加粗的是必备部件,不渲染它组件不工作(Web Components 适配器会在诊断通道上报 wc.missing-part)。

data-scope="skeleton"root · bone

Props

属性类型必填说明
loadingboolean是否还在加载,默认 true。
variantSkeletonVariant容器内骨架条的默认形状,默认 'text'。

connect API

connect 产出的对象。getXxxProps() 铺到对应部件的宿主元素上,其余是可读状态与操作入口。

成员类型说明
loadingboolean当前是否处于加载态。
getRootProps() => T['element']
getBoneProps(bone?: SkeletonBoneProps) => T['element']

键盘

规格出处:W3C APG

无键盘交互(不接收焦点,或焦点行为完全由原生元素提供)。

Released under The MIT License