Vue实现骨架屏的示例代码
vue实现页面加载占位
效果如下
思路与实现
页面加载时用户等待,此时与用户交互的方式通常有等待层、进度条、加载动画等;本次介绍加载占位,把页面即将展示的样子用css背景展示出来,等数据返回后即可进行页面渲染,可以有效减少页面抖动。
页面组成如下:
占位子组件:使用纯css编写;
获取数据的交易:此处使用setTimeout模拟查询耗时;
数据展示组件;
代码如下:
<template> <div> <title-bar :title="title" @goBack="goback"></title-bar> <div v-if="res==true"> <div v-for="(prd, index) in productList" :key="index"> <prd-item :prd="prd" @toPrdDetail="toPrdDetail"></prd-item> </div> </div> <list-loading v-else></list-loading> </div> </template> <script> import TitleBar from "@/components/TitleBar"; import ListLoading from '@/components/ListLoading'; import PrdItem from "./components/PrdItem"; export default { name: "hgang", // 分割线 components: { ListLoading, TitleBar, PrdItem }, data() { return { res: false, // 数据是否已经返回 title: '产品列表', productList: [ { imgPath: "apple-1001.png", name: "Apple iPad Air 平板电脑(2020新款)", price: "4799.00", sale: "5", ranking: "10000+评价 平板热卖第5名", prdShopName: "Apple官方旗舰店" } ] }; }, mounted() { console.log(111); this.waitDateload(); }, methods: { waitDateload() { console.log(this.res); setTimeout(() => { this.res = true; console.log(this.res); }, 5000); }, toPrdDetail() { // }, goback() { // } }, }; </script>
其中:
- ListLoading:加载占位子组件,使用css编写,另加闪光动画效果;
- PrdItem:数据返回之后页面渲染子组件;
- res:控制占位组件与实际页面切换变量,通过v-if来控制页面展示,数据返回立刻重新渲染页面。
到此这篇关于Vue实现骨架屏的示例代码的文章就介绍到这了,更多相关Vue骨架屏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
VUE的history模式下除了index外其他路由404报错解决办法
在本篇文章里小编给大家分享的是关于VUE的history模式下除了index外其他路由404报错解决办法,对此有需要的朋友们可以学习下。2019-08-08详解vue3.2中setup语法糖<script lang="ts" setup>
Vue 3.2 引入了语法,这是一种稍微不那么冗长的声明组件的方式,下面这篇文章主要介绍了详解vue3.2中setup语法糖<script lang="ts"setup>的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2023-01-01vue转electron项目及解决使用fs报错:Module not found: Error: Can&apo
这篇文章主要给大家介绍了关于vue转electron项目及解决使用fs报错:Module not found: Error: Can‘t resolve ‘fs‘ in的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下2022-11-11
最新评论