在element-plus的Dialog组件中使用el-loading效果

ops/2024/12/22 18:24:21/

最近遇到一个需求,在页面中有个组件,子组件由el-dialog包裹,希望展示隐藏el-dialog时有加载动画,加载动画用的是v-loading。

javascript">//父组件
<template><tabs v-model="tabsVisible"/>
</template>
<script setup>const tabsVisible = ref(false);
</script>
javascript">//子组件
<template><el-dialogv-model="modalVisible"title="":close-on-click-modal="false"width="85%"v-loading="loading"><!--> 这里是展示的内容 <--></el-dialog>
</template>
<script setup>import { ref, computed, watch } from "vue";const loading = ref(false);const props = defineProps({//接收参数modelValue: false,		});const emit = defineEmits(["update:modelValue"]);const modalVisible = computed({get() {return props.modelValue;},set(value) {emit("update:modelValue", value);},});
</script>

如果直接在el-dialog上面加v-loading那么进入页面会报错,我查了下大概意思是:在具有非元素根节点的组件上使用的运行时指令,这些指令将无法按预期发挥作用(Runtime directive used on component with non-element root node. The directives will not function as intended. )。

这个时候我换了种方式,使用element-plus提供的loading指令。

javascript">//子组件
<template><el-dialogv-model="modalVisible"title="":close-on-click-modal="false"width="85%"><!--> 这里是展示的内容 <--></el-dialog>
</template>
<script setup>import { ref, computed, watch } from "vue";const props = defineProps({//接收参数modelValue: false,		});const emit = defineEmits(["update:modelValue"]);const modalVisible = computed({get() {return props.modelValue;},set(value) {emit("update:modelValue", value);},});watch(modalVisible, (newVal, oldVal) => {if (newVal) {initData();} else {//处理数据}});const initData = async () => {//获取数据let loading = null;try {setTimeout(() => {loading = ElLoading.service({ fullscreen: true });}, 30);let res = await getInfo();} catch (e) {console.error(e);}loading.close();};</script>

当然如果不是父子组件,直接用v-loading就行了。


http://www.ppmy.cn/ops/103302.html

相关文章

SQL 快速参考

SQL 快速参考 引言 SQL(Structured Query Language)是一种用于管理关系数据库管理系统(RDBMS)的标准编程语言。它被广泛用于数据查询、数据更新、数据库维护和访问控制。本快速参考旨在提供SQL的基本概念和常用命令的概览,帮助读者快速理解和应用SQL。 基础概念 数据库…

人工智能 | AutoGPT理念与应用

简介 在 ChatGPT 问世之后&#xff0c;大家很容易就发现其依然具备一些很难解决的问题&#xff0c;比如&#xff1a; Token 超出限制怎么办&#xff1f;&#xff08;目前最新的 GPT4 支持最多 8,192 tokens&#xff09;。如何完全自动化&#xff1f;任务需要多步串联&#xf…

项目错误大模块区分

HTTP Status 500、404和405都是HTTP协议中定义的状态码&#xff0c;用于表示客户端请求与服务器响应之间的交互状态。这些状态码分别属于不同的错误板块&#xff0c;并具有各自独特的含义和区别。 1. HTTP Status 500 错误板块&#xff1a;服务器内部错误 含义&#xff1a;H…

本地部署aniportrait

要求python >2.10 cuda 118 下载代码&#xff1a; git clone https://github.com/Zejun-Yang/AniPortrait.git 创建虚拟环境&#xff1a; conda create -n aniportrait python2.10 conda activate aniportrait pip install -r requirements.txt 出现错误&#xff1a; …

运维学习————LVS集群和Keepalived+LVS高可用

目录 官网&#xff1a;LVS中文官网 一、概念 二、组成及软件工作层次图 ​编辑 三、整体架构 四、名词解释 五、三种工作模式 1、LVS-NAT 2、LVS-TUN 3、LVS-DR 六、DR模式的实现 1、克隆出LVS&#xff0c;配置虚拟IP 2、配置Nginx的虚拟IP Nginx1的配置 Nginx2…

【AI绘画教程】StableDiffusion真实系模型推荐,搭配ADetailer人脸修复插件,轻松生成真实故事大场景AI人像,让你的SD好用100倍!

大家好&#xff0c;我是画画小强 在图像生成领域&#xff0c;真实系模型非常重要&#xff0c;它们可以给我们生成高度逼真的图像&#xff0c;可以用于各种创意项目、广告设计和影视制作。本期教程我们将围绕几款真实系模型和Lora模型来展开。 1、真实系模型&#xff1a;Majic…

Java框架SpringBoot(一)

一、Spring的优缺点 优点 开源,轻量级,非侵入式的一站式框架,简化企业级应用开发。 控制反转(IOC),依赖注入(DI)降低了组件之间的耦合性&#xff0c;实现了软件各层之间 的解耦。 面向切面(AOP)&#xff0c;利用它可以很容易实现一些拦截&#xff0c;如事务控制等。 spring 对…

《机器学习》【项目】 爬虫爬取数据、数据分词、贝叶斯算法、判断分类 <完整实战详解> (全篇完结)

目录 一、回顾爬虫 1、什么是爬虫 2、实操爬虫 1&#xff09;寻找标签位置 2&#xff09;爬取苏某某购产品好评数据 运行代码&#xff1a; 3&#xff09;爬取差评内容 二、数据分词 1、将获取到的好评和差评数据进行初步分词 1&#xff09;初步分词 2&#xff09;内…