elementui每次显示el-dialog都进行初始化

先说解决方案:加上v-if每次都会销毁和重新创建

<el-dialog
  title="提示"
  :visible.sync="dialogVisible"
  v-if="dialogVisible"
  width="30%"
  :before-close="handleClose">
</el-dialog>

在项目中遇到一个场景,点击table中的授权按钮,去给这一行对应的用户授权角色

逻辑:点击授权按钮,显示授权dialog,在子组件的created生命周期中去获取可以授权的角色的一些信息,但是发现当el-dialog显示一次,下一次就不会调用created生命周期函数中的初始化方法了。。。
检查发现dialog切换是使用display:none来控制的,我理解就相当于v-show的作用,并不是真正的创建和销毁,而是通过display来切换的
在这里插入图片描述
为了让每次都创建,给el-dialog加上v-if指令,就会每次都销毁和创建了

回顾一下v-if 和 v-show的区别

1.什么是v-show指令
v-show和v-if的能够一样都是条件渲染, 取值为true就显示, 取值为false就不显示

2.v-if和v-show区别
v-if: 只要取值为false就不会创建元素
v-show: 哪怕取值为false也会创建元素, 只是如果取值是false会设置元素的display为none

3.v-if和v-show应用场景
由于取值为false时v-if不会创建元素, 所以如果需要切换元素的显示和隐藏, 每次v-if都会创建和删除元素
由于取值为false时v-show会创建元素并设置display为none, 所有如果需要切换元素的显示和隐藏,
不会反复创建和删除, 只是修改display的值
所以: 如果企业开发中需要频繁切换元素显示隐藏, 那么推荐使用v-show, 否则使用v-if
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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`设置是否显示遮罩层等。可以根据实际需求进行配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值