vue 中this.$on 為什么要放在created中?


最近在思考一個問題為什么一定要在created中寫this.$on,可以放在mounted中嗎

如果觸發和監聽組件在頁面上都創建了,那么可以放在mounted中

這種情況在實際工作中比較常見,如果在觸發的組件實際觸發之前,監聽組件mouted方法執行了,那么就沒有任何問題

如果觸發和監聽組件在頁面上依次創建,那么要放在created中

放在created中最主要的原因是組件的生命周期執行順序決定的,a是現在的組件,b是即將顯示的組件,那么執行順序是b先created,beforeMount,然后才是a的beforeDestroy,destroyed鈎子執行,b的mounted最后執行,針對這種業務你想一下,你在a的beforeDestroy鈎子中觸發emit,如果在b的mounted中監聽,這時候b的生命周期還沒有執行到那一步所以,你的觸發是不會生效的,所以更通用的情況是放在created鈎子中


免責聲明!

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



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