目前在項(xiàng)目中有這么兩個(gè)平行的vue.js組件, 都掛載在$el:document.body
下:hall
和detail
現(xiàn)在的情況是, detail
中的某個(gè)值改變了, 需要在hall
中的某個(gè)值也作出相應(yīng)的改變。 本來是想做父子組件的, 但項(xiàng)目框架如此, 改還要牽扯到很多, 暫緩了。
我們知道vue.js中組件樹的通信是比較方便的: 子組件可以通過v-bind
和prop
來從父組件繼承值并雙向綁定, 而子組件也可以通過$dispatch
方法來向父組件發(fā)送信息
那么這種平行的子組件之間, 有沒有什么好的通信方法呢?
現(xiàn)在的臨時(shí)解決方案就是:收到ajax的返回信息之后, 在回調(diào)函數(shù)中這樣寫:
this.$parent.$children[0].$data.somedata = somavalue
但這樣的寫法讓我很不安, 且不說那個(gè)強(qiáng)耦合$children[0]
, 實(shí)現(xiàn)也不甚優(yōu)雅
有沒有什么好的辦法呢?求解!
更加令人蛋傷的是項(xiàng)目用的是0.12版本+browserify進(jìn)行組件打包, 1.0的高級(jí)特性不敢亂用……