Vue 非父子元件通訊

2022-07-09 12:42:27 字數 1195 閱讀 8909

元件是vue核心的一塊內容,元件之間的通訊也是很基本的開發需求。元件通訊又包括父元件向子元件傳資料,子元件向父元件傳資料,非父子元件間的通訊。前兩種通訊vue的文件都說的很清楚,但是第三種文件上確只有下面的幾句

具體如何去實現卻沒有很詳細的說明,於是自己試著進行了實現。先看下簡單的通訊效果:

就是點選了乙個元件,另乙個元件的數字遞加。

html如下:

<

div

id>

<

component-a

>

component-a

>

<

component-b

>

component-b

>

div>

再來看一下如何實現每乙個元件:

var bus = new vue() //

首先建立乙個空的vue例項作為事件的中轉

vue.component('component-a',}

`, //

新增點選事件incrementb ,因為點選a需要增加b

data ()

},methods:

},mounted:

function

() )

//bus.$on('incrementa',()=>)}})

從上面的**可以看出真正的改變方法是通過bus裡註冊監聽事件來實現的,同理代component-b也是一樣

vue.component('component-b',}

`, data ()

},methods:

},mounted:

function

()) }

})

完整**如下,可直接複製執行

1237

810111213

14

view code

同時也可以看出這麼做僅有兩個元件就有些麻煩,事件的流向不是很清晰,所以在出現複雜的場景時需要使用vuex進行管理。

vue 非父子元件通訊

vuex模組狀態管理進行模組間的通訊 1.建立名為store 2.建立名為index.js檔案 內容 import vue from vue import vuex from vuex vue.use vuex const state export default new vuex.store 3....

Vue父子元件及非父子元件如何通訊

父元件資料如何傳遞給子元件呢?可以通過props屬性來實現 父元件 子元件通過props來接收資料 方式1 方式2 方式3 這樣呢,就實現了父元件向子元件傳遞資料.那麼,如果子元件想要改變資料呢?這在vue中是不允許的,因為vue只允許單向資料傳遞,這時候我們可以通過觸發事件來通知父元件改變資料,從...

vue2 0父子元件及非父子元件通訊

1.父元件傳遞資料給子元件 父元件資料可以通過props屬性來傳給子元件 父元件 parent msg 這裡必須要用 代替駝峰 data 子元件通過props來接收資料 方式1 props childmsg 方式2 props 方式3 props 2.子元件與父元件通訊 如果子元件想要改變資料呢?這...