组件之间的传值分为:子传父、父传子、兄弟组件传值、vuex
在一般的小型项目中没有必要使用到vuex
兄弟组件之间的传值需要用到一个中间件(vue的实例对象),在vue-cli中注册中间件的方式如下:
在 main.js 文件中
方法一:创建一个新的实例
import Vue from 'vue'
let VueCom = Vue.extend();
Vue.prototype.vc = new VueCom;
方法二:直接使用当前实例(推荐)
new Vue({
beforeCreate() {
Vue.prototype.$bus = this
},
render: h => h(App)
}).$mount('#app');
这样就注册好了一个用于兄弟组件之间传值的中间件
传值时:
// 需要进行传值操作的事件
transmitData(){
this.$bus.$emit('customEvent','传递的数据');
}
接收数据的组件:
mounted() {
this.$bus.$on('customEvent',(data)=>{
console.log('接收到的数据:',data)
})
}