在src下新建个文件夹建个js,在这里我取名为VueEvent.js,在store文件夹下,在这个文件中实例化vue
import Vue from 'vue';
var VueEvent = new Vue()
export default VueEvent;
分别把它引入到tab.vue和home.vue中,注意它们有个共同的父组件
▼▼home.vue
<template>
<div>
<h2>{{title}}</h2>
<button @click="gethome()">Submit</button>
</div>
</template>
<script>
//引入 vue 实例
import VueEvent from "../store/VueEvent.js";
export default {
data() {
return {
title: "我是home组件的数据"
};
},
methods: {
gethome() {
//$emit广播数据
VueEvent.$emit("totab", this.title);
}
}
};
</script>
<style>
</style>
▼▼tab.vue
<template>
<div>
</div>
</template>
<script>
import VueEvent from "../store/VueEvent.js";
export default {
data() {
return {
};
},
methods: {
},
mounted() {
//$on接收数据
VueEvent.$on('totab',function(data) {
console.log(data);
});
}
};
</script>
<style>
</style>
在这里home向tab组件传title值,在父组件去触发事件
点击home的触发的事件可以看到是在tab中显示的,说明传值以及成功了