簡記Vue彈窗組件el-daolog被父界面創建后,子界面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生命周期的函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM