当element ui el-dialog弹窗有缓存,每次打开弹窗的时候会出问题的解决方法

当element ui el-dialog弹窗有缓存,每次打开弹窗的时候会出问题。如下是解决方案!!!

解决方法:

如下是解决方案。用el-dialog 里面有一个 destroy-on-close(关闭时销毁 Dialog 中的元素)这个完全没用。其实很简单。只需要在 el-dialog 外层加一层div 然后在 div 上写上 v-if="dialogVisible"就行了。

<template>
    <div v-if="dialogVisible">//加一层div 就可以了写上 v-if
        <el-dialog
          title="提示"
          :visible.sync="dialogVisible"
          width="30%"
          :before-close="handleClose">
          <span>这是一段信息</span>
          <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>

理解:

也就是说,当显示参数 dialogVisible = true 时,先创建 el-dialog 组件,由于 dialogVisible = true ,也因此可以显示,由于是新创建的 el-dialog 组件,那么所有的 el-dialog 数据是新的,缓存数据也无从影响当前显示的新 el-dialog 组件,v-if 的灵活用法 —— v-if 标签是当 true 时,创建组件,否则一定不会去浪费资源去创建一个当前是 false 的组件,这一点不同于 v-show 标签,v-show 会先创建组件,如果值是 false,则不会显示组件给人看到,而是隐藏组件,值为 true 时,则是会显示组件。


参考链接

当element ui el-dialog弹窗有缓存,每次打开弹窗的时候会出问题。如下是解决方案

猜你喜欢

转载自blog.csdn.net/qq_42701659/article/details/132897092