Vue 兄弟元件通訊的方法(不使用Vuex)

2022-10-06 17:57:09 字數 1087 閱讀 2653

專案中,我們經常會遇到兄弟元件通訊的情況。在大型專案中我們可以通過引入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 傳送方 熊大 ...