鍍金池/ 問答/C++  HTML/ vue兩個不同子組件的$ref為何卻指向同一個方法?

vue兩個不同子組件的$ref為何卻指向同一個方法?

圖片描述

圖片描述

我的需求是:在父組件里同時調(diào)用兩個不同子組件的方法!我用ref只能順利調(diào)用一個子組件的方法,兩個或多個的時候 ref就會被覆蓋

回答
編輯回答
痞性

有沒有嘗試用Bus呢?
用法如下

//假設 bb 組件里面有個按鈕,點擊按鈕,把 123 傳遞給 aa 組件
// 根組件(this.$root)
new Vue({
 el: '#app',
 router,
 render: h => h(App),
 data: {
  // 空的實例放到根組件下,所有的子組件都能調(diào)用
  Bus: new Vue()
 }
})

bb 組件內(nèi)調(diào)用事件觸發(fā)↓
<button @click="submit">提交<button>

methods: {
  submit() {
   // 事件名字自定義,用不同的名字區(qū)別事件
   this.$root.Bus.$emit('eventName', 123)
  }
 }


aa 組件內(nèi)調(diào)用事件接收↓
 // 當前實例創(chuàng)建完成就監(jiān)聽這個事件
 created(){
  this.$root.Bus.$on('eventName', value => {
   this.print(value)
  })
 },

 methods: {
  print(value) {
   console.log(value)
  }
 },

 // 在組件銷毀時別忘了解除事件綁定
 beforeDestroy() {
   this.$root.Bus.$off('eventName')
 },
2017年12月24日 17:15