zoukankan      html  css  js  c++  java
  • 简记Vue弹窗组件eldaolog被父界面创建后,子界面created函数只调用一次的解决方案

    最简单的解决方法:

    在父容器的

    el-dialog外层再加上一层div,如下代码

    <div v-if="dialogVisible">
        <el-dialog>
            ....
        </el-dialog>
    </div>

     变量handleAskKPIShow控制dialog是否显示,外层嵌套的v-if的作用就是让子界面中的created和destory函数在每次子界面打开时都触发一次。

    开发场景是这样的,父界面像是门户类的,有多个表填填写打开按钮,然后每个表单大类分成子界面,父界面调用子界面的dialog。

    在子界面提交表单或者退出之后,表单的值不能清空。因为控制子界面的生存(或者说是生命周期)在父界面中的created函数和destroy函数可以做用到子界面。

    但是在子页面的中的Created函数和destory只会被调用一次;假设父界面是A.Vue;子界面是B.Vue;A中包含了B,在A中控制B打开时,A.created中关于B的初始化函数执行(这)和B.Vue(中的Created执行);关闭同理,但是在执行过后B.Vue就被实际注册在A.Vue中,通常来说逻辑一般在A中用一个可显示的flag控制子界面B的显示与否。那么当A让该控制变量更改,B界面就会被隐藏;A再次让B显示时,其实B是已经注册过在A中的,所以不会触发B中created生命周期的函数。

    如有差错,请各位指正
  • 相关阅读:
    前后端分类状态下SpringSecurity的玩法
    拓展 centos 7
    linux 日志管理
    Linux 内存监控
    Linux 周期任务
    Linux 文件系统
    linux 磁盘管理
    图论 最短路总结
    进阶线段树之乘法操作
    暑假集训Day 10 小烈送菜
  • 原文地址:https://www.cnblogs.com/Timeouting-Study/p/15587848.html
Copyright © 2011-2022 走看看