項(xiàng)目場(chǎng)景:
vue實(shí)現(xiàn)兄弟進(jìn)程間的通信。
問(wèn)題描述
我想實(shí)現(xiàn)VUE中兄弟組件的通信,除了VueX之外,還可以使用eventBus,這幾個(gè)教程把eventbus講的很詳細(xì)。
(34條消息) Vue 兄弟組件之間的通信_(tái)coffee豆丿的博客-CSDN博客_兄弟組件
大部分教程都是這樣,我看了一個(gè)小時(shí)的教程。但是,我按照他們的代碼去做的時(shí)候,就是會(huì)給我報(bào)標(biāo)題的錯(cuò)。然后我搜索這個(gè)報(bào)錯(cuò),網(wǎng)上的資料也沒(méi)有很多。我記錄一下。
原因分析:
很多博客分析了原因。
1、可能是命名的問(wèn)題:【與我無(wú)關(guān)】
(34條消息) this.$emit方法無(wú)效的原因_來(lái)吧,相約98的博客-CSDN博客_this.$emit不生效
2、可能是因?yàn)樯芷诘膯?wèn)題,然后說(shuō)要把接收方的mounted改成created啥啥的,這個(gè)問(wèn)題確實(shí)很關(guān)鍵,但是沒(méi)解決我的?!緹┧懒?,哈哈,毀滅吧,哈哈】(34條消息) Vue中bus報(bào)錯(cuò)TypeError: Cannot read property ‘$emit‘ of undefined_盞茶作酒的博客-CSDN博客_cannot read property '$emit' of undefined
3、最后,也就是終極原因,考慮到VUE的事件監(jiān)聽(tīng)機(jī)制。監(jiān)聽(tīng)必須要在觸發(fā)之前,也就是說(shuō)$on的執(zhí)行必須要在$emit之前?!韭?tīng)我說(shuō)謝謝你】
(34條消息) vue bus.$emit觸發(fā)第一次$on監(jiān)聽(tīng)不到_microcosm1994的博客-CSDN博客_vue bus觸發(fā)第一次,后續(xù)不觸發(fā)
555555,我就為這么一個(gè)小問(wèn)題,我解決了一個(gè)小時(shí)5555。
解決方案:
解決方案就是:反正我看不懂這話,懶得看了。
用法:將回調(diào)延遲到下次 DOM 更新循環(huán)之后執(zhí)行。在修改數(shù)據(jù)之后立即使用它,然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一樣,不同的是回調(diào)的 this 自動(dòng)綁定到調(diào)用它的實(shí)例上。
你只需要把emit函數(shù)的那一句變一變就好了。
this.$nextTick(function () {
// DOM 現(xiàn)在更新了
eventBus.$emit('msg',route)
})
對(duì),沒(méi)錯(cuò),就是這么簡(jiǎn)單。
對(duì)我自己想說(shuō)的
我喜歡這樣的自己。高冷冷在它的博客里說(shuō),任何事情都可以變的很簡(jiǎn)單,我們需要有耐心,然后為這件事情做足充分的準(zhǔn)備。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-408096.html
努力coding,做一個(gè)對(duì)程序代碼有耐心和好奇心的銀。555文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-408096.html
到了這里,關(guān)于[Vue warn]: Error in created hook: “TypeError: Cannot read properties of undefined (reading ‘$on‘)“的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!