Skeleton 骨架屏
该组件目前处于实验性状态,需要进行更加严密的测试,API 也可能发生比较大的变动
import { DuSkeleton } from 'dangoui'
示例
各种类型
<template>
<PreviewBlock>
<DuButton @click="close()">关闭 Loading</DuButton>
<DuSkeleton class="w-100" :loading="loading">
<template #template>
<div class="flex flex-col gap-2">
<DuSkeletonParagraph />
<DuSkeletonParagraph :row-height="24" row-width="50%" />
<DuSkeletonAvatar />
<DuSkeletonRectangle aspect-ratio="3/4" />
</div>
</template>
<div>
要展示的内容
</div>
</DuSkeleton>
</PreviewBlock>
</template>
<script setup lang="ts">
import { ref, getCurrentInstance } from 'vue'
import { DuButton, DuSkeleton, DuSkeletonParagraph, DuSkeletonAvatar, DuSkeletonRectangle } from 'dangoui'
const loading = ref(true)
function close() {
loading.value = false
}
</script>
0
Skeleton API
属性
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
ext-class | string | string[] | Record<string, boolean> | "" | |
ext-style | string | { [x: string]: string | number; } | {} | |
loading | boolean | true |
插槽
名称 |
---|
template |
default |
SkeletonParagraph API
属性
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
ext-class | string | string[] | Record<string, boolean> | "" | |
ext-style | string | { [x: string]: string | number; } | {} | |
gap | string | number | 8 | |
row-width | string | "100%" | |
row-height | string | number | 16 |
SkeletonAvatar API
属性
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
size | string | number | 56 | |
ext-class | string | string[] | Record<string, boolean> | "" | |
ext-style | string | { [x: string]: string | number; } | {} |
SkeletonRectangle API
属性
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
ext-class | string | string[] | Record<string, boolean> | "" | |
ext-style | string | { [x: string]: string | number; } | {} | |
width | string | number | 120 | |
aspect-ratio | number | 1 |