Vue 2.0中提供了一種名為“Bus”的全局事件分發(fā)機制,使不同組件之間的通信變得更加方便。
在Vue的實例對象中,有一個特殊的屬性$bus,它是一個全局Vue實例,可以通過它來創(chuàng)建通信管道。
// 創(chuàng)建管道 const bus = new Vue() // 發(fā)送事件 bus.$emit('event-name', data) // 接收事件 bus.$on('event-name', (data) =>{ // 處理數(shù)據(jù) })
上面的代碼演示了如何創(chuàng)建一個通信管道,并通過$emit方法向管道內(nèi)的所有監(jiān)聽器發(fā)送事件,利用$on方法監(jiān)聽事件并接收數(shù)據(jù)。
另外,$bus還提供了一些其他方法,比如$once只監(jiān)聽一次事件,$off取消事件監(jiān)聽等。
// 只監(jiān)聽一次 bus.$once('event-name', handler) // 取消監(jiān)聽 bus.$off('event-name', handler)
在Vue中,通過通信管道實現(xiàn)組件間的通信是一個常見的方式。而Bus作為全局事件分發(fā)機制,可以方便地實現(xiàn)跨組件通信,極大地方便了開發(fā)。
上一篇mysql語句的使用方法
下一篇html字體自帶加粗代碼