# Скелетон
Плейсхолдер на время загрузки содержимого. LhSkeleton — комбинированный плейсхолдер (аватар + текстовые строки), LhSkeletonItem — свободная сборка по формам.
Скелетон
<template>
<div class="demo-col">
<div class="demo-row" style="gap: 24px; align-items: flex-start; flex-wrap: wrap">
<div style="width: 260px">
<p class="demo-note">avatar + rows + animated</p>
<LhSkeleton :loading="loading" :rows="3" avatar animated>
<div>
<strong>Путешествие по горам и рекам</strong>
<p>Фань Куань, Северная Сун. Горы и камни написаны штрихом «дождевые капли», мощь исполнения.</p>
</div>
</LhSkeleton>
</div>
<div style="width: 260px">
<p class="demo-note">SkeletonItem — свободная комбинация форм</p>
<LhSkeletonItem variant="rect" style="width: 100%; height: 120px" animated />
<LhSkeletonItem variant="text" style="margin-top: 12px" animated />
<div class="demo-row" style="gap: 12px; margin-top: 12px">
<LhSkeletonItem variant="circle" style="width: 40px; height: 40px" animated />
<LhSkeletonItem variant="text" style="flex: 1" animated />
</div>
</div>
</div>
<p class="demo-note">При loading=false рендерится реальное содержимое</p>
<LhSkeleton :loading="false" :rows="2">
<p>Это реальное содержимое: после отключения loading скелетон уступает место слоту.</p>
</LhSkeleton>
<LhButton size="small" style="margin-top: 12px" @click="toggle">
{{ loading ? 'Скрыть состояние загрузки' : 'Загрузить заново' }}
</LhButton>
</div>
</template>
<script>
export default {
data: () => ({
loading: true,
}),
methods: {
toggle() {
this.loading = !this.loading
},
},
}
</script>
# Skeleton Props
| Проп | Описание | Тип | По умолчанию |
|---|---|---|---|
| loading | Находится ли в состоянии загрузки (при false рендерится реальное содержимое слота по умолчанию) | boolean | false |
| rows | Количество текстовых строк | number | — |
| avatar | Включать ли круглый плейсхолдер аватара | boolean | false |
| animated | Включать ли анимацию | boolean | false |
| sx | Проп sx для быстрого макета | — | — |
# SkeletonItem Props
| Проп | Описание | Тип | По умолчанию |
|---|---|---|---|
| variant | Форма плейсхолдера | 'text' \| 'rect' \| 'circle' | 'text' |
| animated | Включать ли анимацию | boolean | false |
| sx | Проп sx для быстрого макета | — | — |
# Slots
Слот по умолчанию LhSkeleton: реальное содержимое, рендеримое при loading=false.
Copyright © 2024-2026 FengMo WenXue