怎么在纯生vue中封装使用骨架屏呢
时间: 2024-05-06 09:15:39 浏览: 96
Vue页面骨架屏的实现方法
在纯生 Vue 中封装使用骨架屏可以通过以下步骤实现:
1. 创建一个骨架屏组件 Skeleton.vue,该组件包含需要展示骨架屏的元素和动画效果。
```
<template>
<div class="skeleton">
<div class="skeleton-item" v-for="i in 3" :key="i"></div>
</div>
</template>
<style>
.skeleton {
display: flex;
align-items: center;
justify-content: center;
}
.skeleton-item {
width: 50px;
height: 50px;
margin: 0 10px;
background-color: #ccc;
border-radius: 50%;
animation: pulse 1.2s ease-in-out infinite alternate;
}
@keyframes pulse {
from {
opacity: 0.6;
}
to {
opacity: 1;
transform: scale(1.1);
}
}
</style>
```
2. 在需要展示骨架屏的组件中引入 Skeleton.vue 组件,并添加一个 Boolean 类型的数据 isLoading,用于控制展示骨架屏或实际数据。
```
<template>
<div>
<h1>{{title}}</h1>
<Skeleton v-if="isLoading" />
<div v-else>
<!-- 展示实际数据 -->
</div>
</div>
</template>
<script>
import Skeleton from './Skeleton.vue'
export default {
components: { Skeleton },
data() {
return {
isLoading: true,
// 实际数据
}
},
mounted() {
// 获取实际数据
this.getData()
},
methods: {
getData() {
// 发送请求获取数据
// ...
// 数据请求完成后关闭骨架屏
this.isLoading = false
}
}
}
</script>
```
3. 在 Skeleton.vue 组件中可以根据实际需求进行自定义,例如添加不同的动画效果、修改元素样式等。
通过以上步骤可以在纯生 Vue 中封装使用骨架屏,可以优化用户体验,提升页面加载速度。
阅读全文