当前位置: 首页 > news >正文

使用 ElLoading 组件来实现加载(loading)功能

在 Element Plus 中,你可以使用 ElLoading 组件来实现加载(loading)功能。ElLoading 通常用于在数据加载或某些异步操作进行时,向用户展示一个覆盖整个页面的加载提示。

以下是如何在你的 Vite + Vue 3 + JavaScript 项目中使用 ElLoading 组件的详细步骤。

1. 安装 Element Plus

首先,确保你已经安装了 Element Plus。如果还没有安装,你可以通过以下命令安装:

npm install element-plus --save

2. 引入 Element Plus

在你的 main.js 文件中引入 Element Plus 和它的样式:

import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')

3. 使用 ElLoading 组件

在你的组件中,你可以使用 ElLoading 组件来显示加载提示。以下是一个示例,展示了如何在 <script setup> 语法中使用 ElLoading

示例组件:
<template><div><el-button @click="showLoading">Show Loading</el-button><div v-if="loading" class="loading-overlay"><!-- Loading overlay will be managed by ElLoading instance --></div></div>
</template><script setup>
import { ref } from 'vue'
import { ElLoading } from 'element-plus'const loading = ref(false)
let loadingInstance = nullconst showLoading = () => {loading.value = trueloadingInstance = ElLoading.service({lock: true,text: 'Loading...',spinner: 'el-icon-loading',background: 'rgba(0, 0, 0, 0.7)'})// Simulate an async operationsetTimeout(() => {loadingInstance.close()loading.value = false}, 3000)
}
</script><style scoped>
.loading-overlay {position: fixed;top: 0;left: 0;right: 0;bottom: 0;display: flex;align-items: center;justify-content: center;z-index: 9999; /* Ensure it covers other content */
}
/* This class is actually not used since the overlay is managed by ElLoading */
</style>

注意事项

  1. lock: true:这将锁定页面的其他内容,防止用户交互。如果你不需要锁定页面,可以将其设置为 false
  2. text:你可以自定义加载提示的文本。
  3. spinner:你可以自定义加载图标,Element Plus 提供了多个内置图标,你也可以使用自定义的 SVG 或图片。
  4. background:你可以自定义加载背景的颜色和透明度。

4. 处理异步操作

在上面的示例中,我们使用了 setTimeout 来模拟一个异步操作。在实际应用中,你可以将 loadingInstance.close() 放在你的异步操作完成后的回调函数中。

通过以上步骤,你就可以在 Vite + Vue 3 + JavaScript 项目中成功地使用 Element Plus 的 ElLoading 组件来实现加载功能了。

http://www.lryc.cn/news/457666.html

相关文章:

  • Win10 IDEA连接虚拟机中的Hadoop(HDFS)
  • tp8自带的文件缓存如何配置
  • 【环境搭建】MAC M1安装ElasticSearch
  • [linux 驱动]网络设备驱动详解
  • 【ShuQiHere】 重新定义搜索:本体搜索引擎的时代
  • Ruby脚本:自动化网页图像下载的实践案例
  • ArcGIS中分区统计栅格值前需要进行投影吗(在投影坐标系下进行吗),为什么?
  • 怎么将视频原声提出来?视频原声提取,让创作更自由
  • 在IDEA里用XDebug调试PHP,断点....
  • 如何设置 GitLab 密码过期时间?
  • 重学SpringBoot3-集成Redis(十二)之点赞功能实现
  • Django-rest-framework(DRF)怎么实现Excel文件导出
  • 零基础MySQL数据库入门一天学完
  • 【CSS Tricks】鼠标滚轮驱动css动画播放,使用js还是css?
  • 《Electron 基础知识》设置 Vue 中引用的文件路径别名
  • day 20 二叉树 part05
  • 003 Springboot操作RabbitMQ
  • 小猿口算脚本
  • 从 Reno TCP 到 Scalable TCP,HighSpeed TCP
  • 使用Java调用OpenAI API并解析响应:详细教程
  • 深入学习并发编程中的 synchronized
  • AMD R9-9950X相比较I9-14900K有哪些提升
  • 计算机毕业设计 基于Python的个性化旅游线路推荐系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • 总结:Flink之DataStream各API介绍
  • 设计一个日志管理系统,支持多级别日志记录
  • Javascript动态规划算法
  • Java 循环里怎么删除元素才安全
  • LabVIEW晶体振荡器自动化测试系统
  • 3.6.xx版本SpringBoot创建基于Swagger接口文档
  • Oracle 12201非PDBS模式单机部署(静默安装)