1.創建一個vue實例
bus.js
import Vue from 'vue'
export default new Vue()
1. b.vue傳值給a.vue
a.vue
import Bus from '@/libs/bus.js'
//調用
Bus.$emit('selectionSampleList', this.selection)
b.vue
import Bus from '@/libs/bus.js'
mounted() {
this.init()
Bus.$on('selectionSampleList', (e) => {
this.$refs['sampleDetail'].init(e)
})
},
//銷毀
beforeDestroy(){
Bus.$off('selectionSampleList')
},
activated () {
Bus.$on('selectionSampleList', (e) => {
this.$refs['sampleDetail'].init(e)
})
},
2.b.vue傳方法給a.vue
b.vue
import Bus from '@/libs/bus.js'
mounted(){
Bus.$on('saveFun',this.saveFun)
},
//銷毀
beforeDestroy(){
Bus.$off('saveFun')
},
methods:{
saveFun(){
console.log('123)
}
}
a.vue
import Bus from '@/libs/bus.js'
methods:{
btnFun(){
//調用方法
Bus.$emit('saveFun')//不傳參
Bus.$emit('saveFun',‘參數’)//傳參
}
}
注意:這里最好再加上個銷毀事件,否則當頁面銷毀后,事件接收還是會存在的