1. 元件通訊
父子通訊:
父—>子, 父傳遞資料使用 :xx= 'data',子拿取資料使用屬性props:['xx']
props:{ xx: { type: Array, default: [0,0,0] }
}
子—>父 , 使用事件觸發方式,子傳遞資料使用this.$emit('doSome', 'data')定義觸發的事件,並在第二個引數中將對應的資料傳過去,父中在呼叫元件中加上@doSome = 'oneFunction', 在oneFunction(data){}中呼叫資料。
若無事件觸發互動時,父元件也可以直接給子元件設定ref通過this.$refs.oneChild.data來拉取資料。(從dom例項中拉取)
可以使用 :oneFoo.sync="xx" 在父元件 實現雙向繫結,相當於 :oneFoo="xx" @doSome:oneFoo="data=>oneFoo=data", 子元件只需要在資料改變時觸發doSome就可以了。
優點:父子資料實時同步,sync語法糖很簡單的實現。
缺點:雙向繫結破壞了單項資料流的簡潔,增加了資料分析難度。
元件間通訊:
使用eventHub let hub = new Vue(); hub.$emit("change", "xx")
hub.on('change', ()=>{this.msg = "xx"})