Skeleton 骨架屏
骨架屏用处在于: 为需要加载等待的位置提供一个占位, 骨架屏与传统的loading有异曲同工之妙.
代码演示
基础用法
骨架屏中默认以文本的样式展示, 组件默认 rows = 3, 显示3行内容。
查看代码 < />
<template>
<w-switch v-model="showContent" />
<ul v-if="showContent" class="content-wrapper">
<li v-for="item in data" :key="item.label">
<strong v-text="item.label"></strong>
{{item.value}}
</li>
</ul>
<w-skeleton :loading="!showContent" />
</template>
<script>
export default {
data () {
return {
showContent: false,
data: [{
label: '基础用法',
value: '骨架屏默认是以文本的样式进行展示, 默认占位3行内容.'
}, {
label: '组合用法',
value: '利用extraConfig配置项, 可以灵活的对骨架屏实现组合, 以适配更过的使用场景.'
}, {
label: '开启动画',
value: '骨架屏默认动画效果是关闭的, 可以通过 animated 参数手动开启.'
}]
}
}
}
</script>
组合用法
通过 extraConfig 这个配置项可以进行较灵活的组合, 以满足大部分的骨架解构。
查看代码 < />
<template>
<w-skeleton loading :rows="rows1" :extraConfig="extraConfig1" />
<w-skeleton loading :rows="rows2" :extraConfig="extraConfig2"
:contentConfig="contentConfig" />
<w-skeleton loading :rows="rows3" :extraConfig="extraConfig3" />
</template>
<script>
export default {
data () {
return {
contentConfig: {
itemSpace: '18px',
itemHeight: '16px'
},
extraConfig1: {
position: 'left',
shape: 'circle',
size: '60px'
},
rows1: 2,
extraConfig2: {
position: 'right',
shape: 'square',
size: ['80px', '120px']
},
rows2: 3,
extraConfig3: {
position: 'top',
shape: 'square',
size: ['50%', '60px']
},
rows3: 2
}
}
}
</script>
动画效果
骨架屏默认动画效果是关闭的, 可以通过 animated 参数手动开启。
查看代码 < />
<template>
<w-skeleton animated loading :extraConfig="extraConfig" />
</template>
<script>
export default {
data () {
return {
extraConfig: {
size: '60px',
position: 'left',
shape: 'circle'
}
}
}
}
</script>
API
Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 | Version |
---|---|---|---|---|---|
animated | 是否开启动画效果 | Boolean | — | false | |
loading | 控制骨架屏的出现与隐藏 | Boolean | — | true | |
rows | 显示几行文本 | Number | — | 3 | |
contentConfig | 内容样式配置(详细查看contentConfig说明) | Object | — | — | |
extraConfig | 其他内容配置, 用于灵活的定义一些占位内容. (详细查看extraConfig说明) | Object | — | — |
contentConfig
参数 | 说明 | 类型 | 可选值 | 默认值 | Version |
---|---|---|---|---|---|
itemSpace | 内容之间的间距 | String | — | 20px | |
itemHeight | 内容占位的高度 | String | — | 20px |
extraConfig
参数 | 说明 | 类型 | 可选值 | 默认值 | Version |
---|---|---|---|---|---|
position | extra内容相对于内容出现的位置 | String | top / left / right | top | |
shape | extra内容的形状 | String | circle / square | square | |
size | 用于定义extra内容的大小(宽、高) | String / Array[width, height] | — | 40px |
贡献者
类型 | 参与者 |
---|---|
设计者 | UED视觉组 |
维护者 | UED前端组 |