Skip to content

Скелетон ​

Заглушка на время загрузки данных; когда loading равно false, рендерится реальное содержимое.

Базовое использование ​

vue
<template>
  <lh-skeleton :loading="loading">
    <view>Реальное содержимое</view>
  </lh-skeleton>
</template>

<script setup lang="ts">
import { ref } from 'vue'
const loading = ref(true)
</script>

Строки и аватар ​

vue
<template>
  <lh-skeleton :loading="true" :rows="4" avatar />
</template>

Отключение анимации ​

vue
<template>
  <lh-skeleton :loading="true" :animated="false" :rows="3" />
</template>

Самостоятельные блоки-заглушки ​

lh-skeleton-item можно использовать отдельно, чтобы собрать собственную заглушку; variant принимает text / rect / circle.

vue
<template>
  <view class="custom-skeleton">
    <lh-skeleton-item variant="circle" class="avatar" />
    <lh-skeleton-item variant="text" class="line" />
  </view>
</template>

Props (lh-skeleton) ​

ПропОписаниеТипПо умолчанию
loadingНаходится ли в состоянии загрузки (при false рендерится реальное содержимое слота default)booleantrue
rowsКоличество текстовых строкnumber3
avatarВключать ли круглую заглушку аватараbooleanfalse
animatedВключена ли анимацияbooleantrue
customClassПользовательский классstring—
sxБыстрые свойства раскладкиLhSxProps—

Props (lh-skeleton-item) ​

ПропОписаниеТипПо умолчанию
variantФорма блока-заглушки'text' | 'rect' | 'circle''text'
animatedВключена ли анимацияbooleantrue
customClassПользовательский классstring—
sxБыстрые свойства раскладкиLhSxProps—

Slots (lh-skeleton) ​

СлотОписание
defaultРеальное содержимое, рендерится при loading, равном false

Доступность

Контейнер помечается aria-busy="true" и aria-live="polite", сами блоки-заглушки скрыты от вспомогательных технологий; когда данные готовы, скринридер автоматически объявит реальное содержимое.