專案中,我們經常會遇到兄弟元件通訊的情況。在大型專案中我們可以通過引入vuex輕鬆管理各元件之間通訊問題,但在一些小型的專案中,我們就沒有必要去引入vuex。下面簡單介紹一下使用傳統方法,實現父子元件通訊的方法。
簡單例項:我們在a元件中點選按鈕,將資訊傳給b元件,從而使b元件彈出。
主要的思路就是:先子傳父,在父傳子
首先我們在 a.vue 元件中 ,給按鈕botton繫結乙個handleclick事件,事件中我們通過 this.$emit() 方法去觸發乙個自定義事件,並傳遞我們的引數。
示例中我們通過this.$emit() 去觸發islogfn 這個方法自定義事件,並將log 引數傳遞出去
a.vue
a元件
第二步,我們要在父元件中去監聽這個自定義事件,去觸發對應的方法,並接受a元件傳過來的引數。此時我們就完成了子元件向父元件傳值的過程。
示例中, 監聽islogfn 去觸發我們在父元件中定義的方法lislogfn,並拿到傳過來的 『log' 資料。完成子父傳值。
到此,整個過程還沒有結束,只是完成了一半。接下來我們要完成父子元件傳值,將a元件的資訊在傳給b元件。
在< bpage &程式設計客棧gt; 標籤中繫結islog 屬性,動態繫結data中的login 字段,在我們通過lislogfn 方法拿到 『data'之後,我們要判斷 data 傳過來的資料,根據判斷結果去改變data()中的資料,從而將資料傳遞給b元件
app.vue
最後,b元件中需要建立props,定義乙個islog 屬性,這個屬性就是我們傳過來的數值。然後我們在計算屬性中處理這個資料,最終供b元件使用。示例中,我們在v-show="islogin" 中用來控制彈窗是否開啟。
切記!不能直接使用這個props,一定要經過computed處理,原因我引用vue官方說明
單向資料流
b.vue
我是元件b彈窗
總結: 想要實現兄弟元件傳值,一定要首先熟悉子父,父子之間的傳值。
子父:
父子:
文中示例 github 位址:htwww.cppcns.comtps:
本文標題: vue 兄弟元件通訊的方法(不使用vuex)
本文位址:
Vue兄弟元件通訊
vue兄弟元件通訊之借助 事件匯流排 其實要實現兄弟元件通訊,就算是通過父子元件通訊的方式也是可以達到的,如 子 父 子 在這裡呢,就不對這種方式進行贅述,下面給大家介紹 借助 事件匯流排。第一步 在 元件資料夾中,建立乙個js檔案,這裡將其命名為 bus,js 在裡面寫入如下 import vue...
vue元件兄弟間通訊
借助於乙個公共的vue的例項物件,不同的元件可以通過該物件完成事件的繫結和觸發 var bus newvue bus.emit bus.on 熊大想要發訊息給熊二 接收方 熊二 事件繫結 bus.on customevent function msg 傳送方 熊大 觸發事件 bus.emit cus...
vue元件兄弟間通訊
四 兄弟元件間通訊 event 借助於乙個公共的vue的例項物件,不同的元件可以通過該物件完成事件的繫結和觸發 var bus new vue bus.emit bus.on 熊大想要發訊息給熊二,接收方 熊二 事件繫結 bus.on customevent function msg 傳送方 熊大 ...