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前端组
上次更新: 3/17/2020, 8:46:00 PM