1. 程式人生 > 實用技巧 >vue元件間方式總結

vue元件間方式總結

元件間通訊的方案

  • 父子關係的元件資料傳遞選擇props$emit進行傳遞,也可選擇ref
  • 兄弟關係的元件資料傳遞可選擇$bus,其次可以選擇$parent進行傳遞
  • 祖先與後代元件資料傳遞可選擇attrslisteners或者ProvideInject
  • 複雜關係的元件資料傳遞可以通過vuex存放共享的變數

$bus的使用:

可以用於兄弟元件間或者無關係的元件間通訊

1、在main.js中:

Vue.prototype.$bus = new Vue()

2、a.vue檔案中:

this.$bus.$emit('msg',10000)

  Event.$emit('msg',this.msg)------傳送資料,第一個引數是傳送資料的名稱,接收時還用這個名字接收,第二個引數是傳遞的數值;

3、b.vue檔案中:

this.$bus.$on('msg',v=>{
    console.log(v)
})

Event.$on('msg',function(msg){}------接收資料,第一個引數是資料的名字,與傳送時的名字對應,第二個引數是一個方法,要對資料的操作

4、需要注意的是使用$bus的時候在接受bus的元件中別忘了再beforDestroy函式中銷燬bus,不銷燬的話會一直疊加的呼叫這個方法

beforeDestroy(){
    this.$bus.$off('msg')
}