解决element ui的dialog在vue项目中updated()生命周期过早执行的问题

在Vue项目中遇到dialog组件更新问题,updated()函数在未打开dialog时即执行,原因是dialog通过设置display:none来隐藏。解决方案是在dialog外层添加v-if判断,避免不必要的更新。此外,为防止dialog覆盖,建议每个dialog独立成文件。这提高了代码组织性和性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

在最近的项目中,发现dialog的updated()函数在未打开dialog时就已经执行,在打开dialog后则不会再执行

原因

因为dialog在的关闭是通过设置style:"display:none;"来进行隐藏,所以当主页中发生变化时(因为我dialog中的数据与主页数据相关),dialog就已经执行updated()函数了

解决方案

在dialog外层套上一个div并且设置v-if判断语句

<div v-if="enlarge">
  <el-dialog :visible.sync="enlarge">
  </el-dialog>
</div>

另外,因为项目中需要用到很多的dialog,所以我一开始的写法是将所有的dialog都放在一个Dialog.vue文件中去写,结果发现到后面同一个dialog会出现两次并进行覆盖。所以,大家可以建一个Dialog文件夹,在里面细分每一个dialog.vue文件。共勉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值