Vue常用知識速記

蘇水軒發表於2018-04-06

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"})


相關文章