如沒能看懂,拜托復(fù)制相關(guān)代碼在本地跑下
<template>
<div>
組件a
<button @click="sendMsg">問(wèn)候組件b</button>
</div>
</template>
<script>
import bus from './bus'
export default {
methods: {
sendMsg() {
bus.$emit('send', '組件b你好嗎?')
this.$router.push('/bbb')
}
}
}
</script>
<template>
<div>
<p>組件b:{{ msg }}</p>
</div>
</template>
<script type="text/javascript">
import bus from './bus'
export default {
data () {
return {
msg: 'msg初始值'
}
},
mounted () {
bus.$on('send', data => {
console.log(data)
console.log(this)
this.msg = data
})
}
}
</script>
import Vue from 'vue';
export default new Vue()
const aaa = () => import('@/components/zujian/bus/a')
const bbb = () => import('@/components/zujian/bus/b')
export default new Router({
routes: [{
path: '/aaa',
component: aaa
},
{
path: '/bbb',
component: bbb
}]
})
bus的出現(xiàn)就是為了解決非父子組件之間的通信的,而你也說(shuō)過(guò)bus是通過(guò)創(chuàng)建空的 Vue 實(shí)例作為事件總線來(lái)傳遞信息 的,所以:非父子非兄弟關(guān)系的組件都能通過(guò)bus通訊;
你這個(gè)代碼的問(wèn)題:
當(dāng)你問(wèn)候組件b的時(shí)候路由還沒轉(zhuǎn)跳,也就是組件b還沒有實(shí)例化(渲染),就好比只有打電話的,但接電話的都沒有電話,那別人怎么知道你有沒有給我打電話?所以,完成不了通信
有問(wèn)題繼續(xù)來(lái)問(wèn),希望幫到你
其實(shí)了解一下底層原理就明白了,實(shí)際上就是運(yùn)用了Vue內(nèi)部的事件機(jī)制,可以參考Vue事件機(jī)制。
emit做的事情就是從事件隊(duì)列中找到對(duì)應(yīng)的事件并執(zhí)行,找不到則會(huì)丟棄,所以需要保證在此之前已經(jīng)用on注冊(cè)了事件。
題主這段代碼組件B中的on還沒執(zhí)行過(guò)就已經(jīng)調(diào)用了組件A的emit了。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。