有時候兩個元件也需要通訊(非父子關係)。當然vue2.0提供了vuex,但在簡單的場景下,可以使用乙個空的vue例項作為**事件匯流排。
參考:例子:
<div
id>
<
c1>
c1>
<
c2>
c2>
div>
var bus = new vue(); //為了方便將bus(空vue)定義在乙個元件中,在實際的運用中一般會新建一bus.js
vue.component('c1',}
', data: () =>(),
created() );
}});
vue.component('c2',
}});
vue(
},methods: ,
}
元件2
import bus from './bus'exportdefault
},methods: );
},}
但這種引入方式,經過webpack打包後可能會出現bus區域性作用域的情況,即引用的是兩個不同的bus,導致不能正常通訊
當然也可以直接將bus注入到vue根物件中,
import vue from 'vue'const bus = newvue()
vue(
})
在子元件中通過this.$root.bus.$on(),this.$root.bus.$emit()來呼叫
vue兄弟元件之間傳值之Bus
2020 3 22 可以用過乙個vue例項bus作為媒介,要相互通訊的兄弟元件之中,都引入bus,之後通過分別呼叫bus事件觸發 emit和監聽 on 來實現元件之間的通訊和引數傳遞,類似window的全域性自定義事件。類似與子傳父,只不過是利用乙個新的vue示例作為媒介,而不是當前vue示例 th...
vue頁面(兄弟元件)之間傳值
最近重溫了 射鵰英雄傳 郭靖學習了降龍十八掌 九陰真經等一身絕世武功,卻不懂得如何運用,他也說一直自己蠢,真是蠢啊。今天面試,面試官問我頁面a跳轉到b怎麼傳值,我想了半天沒想到,後面他提示用vuex。啊,我真是蠢啊 歸根結底,都是實戰經驗太少。對於單頁面應用,頁面傳值就是元件之間傳值 那麼,元件之間...
vue兄弟父子元件之間傳值
一 父元件修改子元件的值 1.在父元件中宣告子元件 import editstability from edit editsimilarstability.vue 2.使用引入的子元件,可以通過 ref 這個 attribute 為子元件賦予乙個 id 引用 v if editvisible ref...