中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue3銷毀組件問題怎么解決

發布時間:2023-04-25 17:18:57 來源:億速云 閱讀:223 作者:iii 欄目:開發技術

這篇文章主要介紹“vue3銷毀組件問題怎么解決”,在日常操作中,相信很多人在vue3銷毀組件問題怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”vue3銷毀組件問題怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

問題描述:使用elementplus的dialog,當關閉彈窗后不刷新頁面,直接再次打開發現彈窗中還存留上一次的數據。嘗試定義關閉事件,或者使用api中提供的屬性destroy-on-close 都不行。后來發現這是一個誤區。彈窗關閉時并不代表這個組件已經被銷毀了,只是dialog關閉了
解決方法:使用v-if 控制頁面的創建與銷毀。
由于我這里dailog中的數據比較多,所以我抽成了一個組件,在父組件中引用了,但是關閉彈窗的操作是在子組件的dialog中,所以這里又涉及到了子父組件的傳值。再來復習一遍~。
ps:我這里的業務場景是通過在父頁面點擊按鈕來控制子頁面是否彈出來,所以具體實現是這樣的:
在父頁面中定義一個變量,默認為false,當點擊彈出按鈕時,將這個變量置為true;子頁面中手動觸發關閉dialog的事件中,將該變量設置為false,并將值傳遞待到這個父頁面。
結構:
子組件

vue3銷毀組件問題怎么解決

父組件:

vue3銷毀組件問題怎么解決

接下來具體實現:
子組件:當子組件的dialog手動關閉時

vue3銷毀組件問題怎么解決

關閉方法:
使用defineEmits,定義一個方法,并用一個變量去接收,在關閉事件中傳遞一個值,為false

const colse = defineEmits(["ok"])
function closeNDialog() {
  colse("ok", false)
}

父頁面:在父頁面引用的子組件中使用v-if綁定是否銷毀標識,并定義方法去接收子組件傳遞過來的布爾值。在父頁面通過點擊button打開子組件的事件中將該值設置為true,此時子頁面為以創建

<!-- 子組件,使用v-if接收,定義ok方法接收子傳遞過來的布爾值,
       需要注意。ok應和子頁面中定義的保持一致,這個e就代表的是子頁面colse方法傳遞過來的值,
       該值為false,然后我們將false賦值給是否銷毀標識
 -->
    <aaa v-if=isExist @ok="e=>isExist=e"></aaa>
	//定義是否銷毀標識,默認為false,代表銷毀
	const isExist = ref(false);

父頁面通過點擊button打開子組件的事件

const showManage = (row) => {
  openDialog({}).then(resp => {
    isExist.value = true
    // 具體業務邏輯.....
  })
}

到此,關于“vue3銷毀組件問題怎么解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

澄城县| 安宁市| 台江县| 正镶白旗| 阜宁县| 南汇区| 青州市| 杨浦区| 太原市| 丽江市| 通州市| 富川| 竹山县| 辽宁省| 洪江市| 博客| 平潭县| 白河县| 平利县| 塘沽区| 湘乡市| 太保市| 肃北| 吉林省| 封丘县| 屏东县| 西吉县| 桑日县| 巩留县| 巫山县| 奉节县| 湖口县| 英山县| 松江区| 乌苏市| 邹城市| 封开县| 汽车| 定陶县| 泾川县| 嵊泗县|