Vue.js的平行組件之間如何互相通信?

科技 未結(jié) 11 1698
syetm
syetm 2023-05-15 14:40

目前在項目中有這么兩個平行的vue.js組件, 都掛載在$el:document.body下:halldetail
現(xiàn)在的情況是, detail中的某個值改變了, 需要在hall中的某個值也作出相應(yīng)的改變。 本來是想做父子組件的, 但項目框架如此, 改還要牽扯到很多, 暫緩了。
我們知道vue.js中組件樹的通信是比較方便的: 子組件可以通過v-bindprop來從父組件繼承值并雙向綁定, 而子組件也可以通過$dispatch方法來向父組件發(fā)送信息
那么這種平行的子組件之間, 有沒有什么好的通信方法呢?
現(xiàn)在的臨時解決方案就是:收到ajax的返回信息之后, 在回調(diào)函數(shù)中這樣寫:

this.$parent.$children[0].$data.somedata = somavalue

但這樣的寫法讓我很不安, 且不說那個強(qiáng)耦合$children[0], 實現(xiàn)也不甚優(yōu)雅
有沒有什么好的辦法呢?求解!
更加令人蛋傷的是項目用的是0.12版本+browserify進(jìn)行組件打包, 1.0的高級特性不敢亂用……

11條回答
提交回復(fù)