elementUI中关闭el-dialog时如何彻底销毁其中的内容和数据

vue+elementUI项目,点击某个按钮显示el-dialog弹框,弹框中有tab标签页,用来显示不同类型的echarts图表。bug如下:第一次打开弹框,选中第二个tab之后关闭弹框,再次打开弹框时默认选中的是第二个tab,但展示的是第一个tab的数据。

问题分析

在el-dialog组件中设置了destroy-on-close=“true”,文档说关闭时销毁 Dialog 中的元素,由源码得到该属性会让class为el-dialog的dom节点重新生成。但是dialog的数据是维护在dialog的父组件中,而destroy-on-close属性是销毁dialog组件及其子元素。

解决方案

  • 使用v-if代替destroy-on-close

示例代码

<el-dialog title="详情" :visible.sync="innerVisible" v-if="innerVisible"></el-dialog>
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Element UI是一套基于Vue.js的组件库,其el-dialog是其的一个组件,用于实现弹窗对话框的功能。下面是关于el-dialog的使用介绍: 1. 引入Element UI库:在Vue项目,首先需要引入Element UI库。可以通过npm安装,然后在项目的入口文件引入Element UI的样式和组件。 2. 使用el-dialog组件:在需要使用弹窗对话框的地方,可以使用el-dialog组件进行布局和交互。以下是el-dialog的基本用法: ```html <template> <div> <el-button @click="showDialog">打开对话框</el-button> <el-dialog :visible.sync="dialogVisible" title="对话框标题"> <p>对话框内容</p> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">取 消</el-button> <el-button type="primary" @click="dialogVisible = false">确 定</el-button> </span> </el-dialog> </div> </template> <script> export default { data() { return { dialogVisible: false }; }, methods: { showDialog() { this.dialogVisible = true; } } }; </script> ``` 在上述代码,通过点击按钮打开对话框,使用`:visible.sync`绑定`dialogVisible`变量控制对话框的显示与隐藏。`title`属性设置对话框的标题,`slot="footer"`用于自定义对话框的底部按钮。 3. 自定义对话框内容:可以在el-dialog组件内部编写自定义的对话框内容,可以是文本、表单、图片等任意HTML元素。 4. 更多配置选项:el-dialog还提供了一些其他的配置选项,如`width`设置对话框的宽度,`modal`设置是否显示遮罩层等。可以根据实际需求进行配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lewiis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值