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