element-骨架屏

article/2025/9/15 4:52:07

使用场景:在需要等待加载内容的位置设置骨架屏。

主要代码:(其中loading控制骨架屏的显示不显示,为false时不显示,为true时显示)

<template><div v-show="!loading"><!-- 第一行 --><el-row><el-col :span="6" v-for="item in rowArrOne" :key="item.index"><el-card class="box-card"><template #header><div class="card-header"><span>{{ item.name }}</span><span>{{ item.time }}</span></div></template><div class="text item">{{ item.content }}</div></el-card></el-col></el-row><!-- 第二行 --><el-row><el-col :span="3" v-for="item in rowArrTwo" :key="item.index"><el-card class="box-card"><div><span>{{ item.title }}</span></div><div class="text item">{{ item.message }}</div></el-card></el-col></el-row><!-- 第三行 --><el-row><el-col :span="8" v-for="item in rowArrThree" :key="item.index"><el-card class="box-card"><template #header><div class="card-header"><span>{{ item.title }}</span><span>更多>></span></div></template><div class="text item"><el-table :data="tableData" border style="width: 100%"><el-table-column prop="date" label="Date" width="180" /><el-table-column prop="name" label="Name" width="180" /><el-table-column prop="address" label="Address" /></el-table></div></el-card></el-col></el-row></div><!-- 骨架屏 --><el-skeleton:loading="loading"animated><template #template><!-- 第一行 --><el-row><el-col :span="6" v-for="item in rowArrOne" :key="item.index"><el-card class="box-card"><template #header><div class="card-header"><el-skeleton-item variant="text" style="width: 20%" /><el-skeleton-item variant="text" style="width: 20%" /></div></template><el-skeleton /></el-card></el-col></el-row><!-- 第二行 --><el-row><el-col :span="3" v-for="item in rowArrTwo" :key="item.index"><el-card class="box-card"><div><el-skeleton-item variant="text" style="width: 20%" /></div><div class="text item"><el-skeleton-item variant="text" style="width: 40%" /></div></el-card></el-col></el-row><!-- 第三行 --><el-row><el-col :span="8" v-for="item in rowArrThree" :key="item.name"><el-card class="box-card"><template #header><div class="card-header"><el-skeleton-item variant="text" style="width: 20%" /><el-skeleton-item variant="text" style="width: 20%" /></div></template><div class="table-flex"><div class="table-flex_div"><p v-for="item in tableData" :key="item.index" ><el-skeleton-item variant="text" width="100%" /></p></div><div class="table-flex_div"><p v-for="item in tableData" :key="item.index" ><el-skeleton-item variant="text" width="100%" /></p></div><div class="table-flex_div"><p v-for="item in tableData" :key="item.index" ><el-skeleton-item variant="text" width="100%" /></p></div></div></el-card></el-col></el-row></template></el-skeleton>
</template>
<script>
import { defineComponent, reactive, toRefs } from "vue";
export default defineComponent({name: 'shouye-gujiaping',setup() {const state = reactive({rowArrOne: [{ index: '1',name: '第一行第一个',time: '2022-10-27',content: '俄罗斯卫星通讯社华盛顿10月27日电美国国家安全委员会战略沟通协调员约翰柯比表示,美方未看到俄罗斯拟使用“脏弹”的证据。'},{ index: '2',name: '第一行第二个',time: '2022-10-27',content: '俄罗斯卫星通讯社华盛顿10月27日电美国国家安全委员会战略沟通协调员约翰柯比表示,美方未看到俄罗斯拟使用“脏弹”的证据。'},{ index: '3',name: '第一行第三个',time: '2022-10-27',content: '俄罗斯卫星通讯社华盛顿10月27日电美国国家安全委员会战略沟通协调员约翰柯比表示,美方未看到俄罗斯拟使用“脏弹”的证据。'},{ index: '4',name: '第一行第四个',time: '2022-10-27',content: '俄罗斯卫星通讯社华盛顿10月27日电美国国家安全委员会战略沟通协调员约翰柯比表示,美方未看到俄罗斯拟使用“脏弹”的证据。'},],rowArrTwo: [{ index: "1" , title: '图标1', message: '意见反馈' },{ index: "2" , title: '图标2', message: '意见反馈' },{ index: "3" , title: '图标3', message: '意见反馈' },{ index: "4" , title: '图标4', message: '意见反馈' },{ index: "5" , title: '图标5', message: '意见反馈' },{ index: "6" , title: '图标6', message: '意见反馈' },{ index: "7" , title: '图标7', message: '意见反馈' },{ index: "8" , title: '图标8', message: '意见反馈' },],rowArrThree: [{index: "1" , title: '表格1'},{index: "2" , title: '表格2'},{index: "3" , title: '表格3'},],tableData: [{date: '2016-05-03',name: 'Tom',address: '中国',},{date: '2016-05-02',name: 'Tom',address: '中国',},{date: '2016-05-04',name: 'Tom',address: '中国',},{date: '2016-05-01',name: 'Tom',address: '中国',},{date: '2016-05-04',name: 'Tom',address: '中国',}],loading: true,})return {...toRefs(state),}}
})
</script>
<style scoped>
:deep(.card-header) {display: flex;
}:deep(.card-header) span:last-child {flex: 1;text-align: right;
}:deep(.el-card__body) {text-align: left;
}:deep(.el-col-6),
:deep(.el-col-3),
:deep(.el-col-8) {padding: 10px;
}:deep(.el-col-3) .el-card__body div {text-align: center;padding: 6px;
}:deep(.card-header) {justify-content: space-between;
}:deep(.el-skeleton__item.el-skeleton__p.is-first) {width: 100%;
}.table-flex {display: flex;
}.table-flex .table-flex_div {width: 30%;padding: 0 10px;
}
</style>

未设置骨架屏效果截图:

设置上骨架屏效果截图:


http://chatgpt.dhexx.cn/article/yrV9KXkA.shtml

相关文章

浅谈前端骨架屏方案

在图片与前端体验优化中&#xff0c;最重要的莫过于「骨架屏」了&#xff0c;因为它和“首屏体验”息息相关。 目前来说骨架屏基本上有两种方式&#xff1a; HTML CSS&#xff1a;主流。基本是自己在项目中以侵入式方式围绕html“定制”&#xff1b;微信小程序的骨架屏生成方…

前端骨架屏应用

什么是骨架屏 骨架屏可以理解为在页面数据尚未返回或页面未完成完全渲染前&#xff0c;先给用户呈现一个由灰白块组成的当前页面大致结构&#xff0c;让用户产生页面正在逐渐渲染的感受&#xff0c;从而使加载过程从视觉上变得流畅。 生成后的骨架屏页面如下图所示&#xff1…

如何实现骨架屏效果?

今天我们来用原生js实现一个骨架屏的效果&#xff0c;效果如下&#xff1a; 首先思考如何实现 思考实现方式 骨架屏的原理是在数据没加载出来的时候&#xff0c;使用滚动的背景颜色去替代&#xff0c;等到加载完毕后则显示对应内容 那么我们的核心就是实现一个.skeleton的样…

啥是骨架屏

&#xff08;一&#xff09;什么是骨架屏 骨架屏可以理解为是当数据还未加载进来前&#xff0c;页面的一个空白版本。在页面完全渲染完成之前&#xff0c;用户会看到一个样式简单&#xff0c;描绘了当前页面的大致框架的页面&#xff0c;然后骨架屏中各个占位部分被实际资源完…

前端骨架屏方案与实践

对于依赖接口渲染的页面&#xff0c;在拿到数据之前页面往往是空白的&#xff0c;为了提示用户当前正在加载中&#xff0c;往往会使用进度条、loading图标或骨架屏的方式。 对于前两种方案而言&#xff0c;实现比较简单&#xff1b;本文主要研究骨架屏的实现方案。 骨架屏(Ske…

网页骨架屏自动生成方案(dps)

来源&#xff1a;花满楼 https://zhuanlan.zhihu.com/p/74403911 什么是骨架屏&#xff1f; 什么是骨架屏呢&#xff1f;骨架屏(Skeleton Screen)是指在页面数据加载完成前&#xff0c;先给用户展示出页面的大致结构&#xff08;灰色占位图&#xff09;&#xff0c;在拿到接口数…

骨架屏

&#xff08;一&#xff09;什么是骨架屏 骨架屏可以理解为是当数据还未加载进来前&#xff0c;页面的一个空白版本。在页面完全渲染完成之前&#xff0c;用户会看到一个样式简单&#xff0c;描绘了当前页面的大致框架的页面&#xff0c;然后骨架屏中各个占位部分被实际资源完…

Vue中实现骨架屏的多种方式

vue-cli项目首页加载缓慢想要使用骨架屏效果&#xff0c;经过几天的实践&#xff0c;这里学习并记录一下vue项目自动生成骨架屏方法。 前言&#xff1a;骨架屏的作用主要是在网络请求较慢时&#xff0c;提供基础占位&#xff0c;当数据加载完成&#xff0c;恢复数据展示。这样给…

骨架屏原理——面试别再被挨打了

目录 前言 骨架屏是什么 骨架屏原理 用途&#xff1a; &#xff08;一&#xff09;简单实现 &#xff08;二&#xff09; vue项目中的构建 &#xff08;三&#xff09;自动化方案 前言 同样是之前练手项目中的&#xff0c;emmm,知道干嘛用的&#xff0c;没了解过具体原理…

性能测试总结之内存泄露和内存溢出

刚刚做完了一个项目的性能测试&#xff0c;“有幸”也遇到了内存泄露的案例&#xff0c;所以在此和大家分享一下。 主要从以下几部分来说明&#xff0c;关于内存和内存泄露、溢出的概念&#xff0c;区分内存泄露和内存溢出&#xff1b;内存的区域划分&#xff0c;了解GC回收机…

内存泄露与内存溢出的区别及解决方法

内存溢出与泄露的区别 内存溢出 out of memory&#xff0c;是指程序在申请内存时&#xff0c;没有足够的内存空间供其使用&#xff0c;出现out of memory&#xff1b;比如申请了一个integer,但给它存了long才能存下的数&#xff0c;那就是内存溢出。 内存泄露 memory leak&…

jvm故障 内存泄露和内存溢出总结

目录 内存泄漏memory leak 内存泄漏的分类&#xff08;按发生方式来分类&#xff09; 内存泄露的场景 静态集合类 / 长生命周期的对象持有短生命周期对象的引用 / 单例模式 /类加载器 各种连接&#xff0c;如数据库连接、网络连接和IO连接等 变量不合理的作用域 内部类持…

JVM——内存泄漏与内存溢出

内存泄漏与内存溢出 1. 面试题 什么是内存泄漏和什么是内存溢出 (陌陌) Java存在内存泄漏吗&#xff0c;内存泄漏的场景有哪些&#xff0c;如何避免(百度) Java 中会存在内存泄漏吗&#xff0c;简述一下&#xff1f;(猎聘) 内存泄漏是怎么造成的&#xff1f;(拼多多、字节跳动)…

Java中内存溢出和内存泄露详解

1、内存溢出&#xff08;OOM&#xff09; 在程序中导致程序崩溃的两种原因有&#xff1a; ①、空指针、下标越界等异常&#xff0c;这类问题主要原因是因为代码写的有问题 ②、还有一类问题是&#xff0c;代码看着也没有问题&#xff0c;在进行GC时&#xff0c;回收也没有空出足…

内存泄漏和内存溢出的区别

内存泄漏就是在jvm堆中生成的对象&#xff0c;经过垃圾回收器回收后也无法得到有效的释放&#xff0c;则会导致可用的虚拟机可分配的内存越来越少。最终可能导致内存溢出。 以发生的方式来分类&#xff0c;内存泄漏可以分为4类&#xff1a; 1、常发性内存泄漏。发生内存泄漏的…

什么是内存泄漏和内存溢出

目录 一、内存溢出 (OutOfMemory)二、内存泄漏 (Memory Leak) 一、内存溢出 (OutOfMemory) 它是指程序在申请内存时&#xff0c;没有足够的内存空间供其使用&#xff0c;抛出OutOfMemory异常。 比如申请了一个8MB空间&#xff0c;但是当前内存可用空间只有5MB&#xff0c;那么…

内存溢出和内存泄漏

内存溢出&#xff1a; 一、内存溢出相对于内存泄漏来说&#xff0c;尽管更容易被理解&#xff0c;但是同样的&#xff0c;内存溢出也是引发程序崩溃的罪魁祸首之一。 二、由于GC一直在发展&#xff0c;所有一般情况下&#xff0c;除非应用程序占用的内存增长速度非常快&#…

Vim替换命令substitute介绍

原文地址&#xff1a;再谈Vim substitute替换命令-Vim入门教程(54) 在Vim替换命令一文介绍过&#xff0c;substitute 命令的语法格式为&#xff1a;:[range]s[ubstitute]/{pattern}/{string}/[flags]。 [flags] 表示可选的标志位&#xff0c;常用的包括 g、c、n、e 等。其中&…

VIM替换命令%s

[rootlocalhost 09:03:42 /home/test]# cat vim_test.txt linux nginx aabb bbcc ccdd vim vim_test.txt 进入编辑模式 输入指令 :%s/bb/zz/gc 全局替换&#xff0c;带确认 按y对搜索项替换第一个 按y对搜索项替换第二个 这种操作方法 &#xff0c;查看替换过程与效果。避…

八皇后问题c语言算法

目录 [TOC] 问题分析&#xff1a; 相信八皇后规则的问题&#xff0c;大家都很熟悉&#xff0c;接下来是如何分析回溯法的应用。回溯法与图里面的深度优先遍历非常的类似&#xff0c;就是&#xff0c;在满足题目条件时候&#xff0c;它总是优先选择第一个&#xff0c;当不满足…