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前端组 |