Skeleton 骨架屏

文章目录

    • 前言
    • 步骤
      • [1. 了解基本结构](#1. 了解基本结构)
      • [2. 包裹结构](#2. 包裹结构)
      • [3. 使用loading变量控制好显示和隐藏就好。](#3. 使用loading变量控制好显示和隐藏就好。)
    • 效果

前言

在需要等待加载内容的位置设置一个骨架屏,某些场景下比 Loading 的视觉效果更好。

步骤

1. 了解基本结构

使用Skeleton前要了解基本使用元素。

  • 外层标签"el-skeleton"
  • <template #template>
  • <el-skeleton-item>
  • 实际的展示层

2. 包裹结构

复制代码
<template>
	<el-skeleton :loading="loading" animated style="width: 240px">
		<!-- 骨架屏的控制 -->
		<template #template>
			<el-skeleton-item variant="image" style="width: 240px; height: 240px" />
			<div style="padding: 14px">
				<el-skeleton-item variant="h3" style="width: 50%" />
			</div>
		</template>
		<!-- 真正渲染的DOM -->
		<div class="model-items">
			......
		</div>
	</el-skeleton>
</template>

3. 使用loading变量控制好显示和隐藏就好。

补充:大部分人会遇到这种报错

'v-slot' directive must be owned by a custom element, but 'template' is not. eslint(vue/valid-v-slot)
vue/valid-v-slot 'v-slot' directive must be owned by a custom element, but 'template' is not. eslint-plugin-vue

原因:报错原因是 <template #default> 使用了 v-slot 指令,但 template 标签本身不是自定义元素。根据 Vue 的规范,v-slot 必须绑定在自定义组件上,而不能直接用在普通的 template 标签上。

解决办法:直接移除真正渲染的DOM上的#default

效果

由于自己的网站涉及到客户私密,所以就用demo图片展示一下

相关推荐
光影少年6 分钟前
react navite高频手写/实操题
前端·javascript·react native·react.js·前端框架
AI视觉网奇25 分钟前
3d子部件高亮选中
开发语言·javascript·3d
阿图灵28 分钟前
LangGraph 实战 03:Workflows 与 Agents——六种工作流模式与智能体实战(附 6 个可运行示例)
java·前端·javascript·工作流·ai agent·智能体·langgraph
2603_965896621 小时前
JavaScript 对象零基础详解|属性、方法、遍历、增删改查
开发语言·javascript·ecmascript
用户283209679371 小时前
从进程线程到 async/await:JS Event-loop事件循环机制底层解析
前端·javascript
guanguan0_01 小时前
用 AI 做技术方案评审:输入 3 个方案,输出对比矩阵 + 推荐理由
javascript·人工智能·矩阵·ai编程
xiaominlaopodaren2 小时前
three.js地图视口瓦片(二):如何形成完整视口多边形
javascript·gis·three.js
snow@li3 小时前
服务器运维:Alibaba Cloud Linux 4 LTS・Vue前端 Java 后端 K3S 部署 CICD 目录规范清单
linux·前端·vue.js
mONESY3 小时前
从零到上线:全栈项目部署全流程实战
javascript
honkun63 小时前
vue 表格组件 vxe-table 实实现专业记账凭证编辑表格与自动汇总
前端·javascript·vue.js