vue元件間方式總結
阿新 • • 發佈:2020-12-10
元件間通訊的方案
- 父子關係的元件資料傳遞選擇
props
與$emit
進行傳遞,也可選擇ref
- 兄弟關係的元件資料傳遞可選擇
$bus
,其次可以選擇$parent
進行傳遞 - 祖先與後代元件資料傳遞可選擇
attrs
與listeners
或者Provide
與Inject
- 複雜關係的元件資料傳遞可以通過
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') }