父元件向子元件傳遞引數用v-bind
子元件向父元件傳遞引數用this.$emit
兄弟元件傳參eventbus或者是用vuex進行傳遞
下邊說說eventbus
首先在src的assets的目錄下新建乙個vue-bus.js檔案
import vue from
'vue'
export
default
newvue
()
兄弟元件
a元件
import bus from
'@/assets/js/vue-bus.js'
methods:
}
b元件
import bus from
'@/assets/js/vue-bus.js'
created()
)}
可以有多個兄弟元件通訊 通過接收的名字
eventbus使用不善,會造成災難。vue是單頁應用,如果你在某乙個頁面重新整理了之後,與之相關的eventbus會被移除,這樣就導致業務走不下去。還要就是如果業務有反覆操作的頁面,eventbus在監聽的時候就會觸發很多次,也是乙個非常大的隱患。這時候我們就需要好好處理eventbus在專案中的關係。通常會用到,在vue頁面銷毀時,同時移除eventbus事件監聽。
eventbus.
$off
('amsg'
,)
它們的工作原理是發布/訂閱方法,通常稱為pub/sub
var eventbus =
newvue()
;object.
defineproperties
(vue.prototype,}}
)
在這個特定的匯流排中使用兩個方法 $on和$emit。乙個用於建立發出的事件,它就是$emit;另乙個用於訂閱$on:
var eventbus =
newvue()
;this
.$bus.
$emit
('nameofevent',)
;this
.$bus.
$on(
'nameofevent'
,($event)
=>
)
然後我們可以在某個vue頁面使用this.$bus.$emit(「sendmsg」, 『我是web秀』);,另乙個vue頁面使用
this
.$bus.
$on(
'updatemessage'
,function
(value)
)
同時也可以使用this.$bus.$off(『sendmsg』)來移除事件監聽。 Vue事件匯流排(EventBus)
參考 問題背景 vue中除父子元件通訊外,任意兩個元件間的通訊問題。解決方案 1.使用vuex,共享乙個狀態,通過修改和監聽這個狀態實現元件通訊。2.事件匯流排。思路 根據vue.js文件,vm.on vm.off都是其實例方法,因此我們需要乙個vue例項作為事件匯流排物件。使用方式 第一種 將事件...
事件匯流排 EventBus
在非父子元件需要進行通訊的時候,除了vuex之外,還有就是事件匯流排了 eventbus 又稱為事件匯流排。在vue中可以使用 eventbus 來作為溝通橋梁的概念,就像是所有元件共用相同的事件中心,可以向該中心註冊傳送事件或接收事件,所以元件都可以上下平行地通知其他元件,但也就是太方便所以若使用...
EventBus 發布 訂閱事件匯流排
eventbus是一款針對android優化的發布 訂閱事件匯流排。執行緒之間傳遞訊息 1.開銷小,幾行 就可以實現。2.傳送者和接收者解耦。示例 1.先自定義乙個訊息傳輸類 public class msgtype 2.使用時進行註冊 eventbus.register this 3.傳送需要傳輸...