最簡單的解決方法:
在父容器的
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生命周期的函數。