举例子说明,一个组件中是input,监听输入的内容,在另一个组件的div中显示出来;
首先在assets中创建个事件总线js文件eventBus.js,文件中的代码如下:
import Vue from ‘Vue’;
export default new Vue;
然后创建组件:inputComponent,导入eventBus,用input事件监听输入的内容,在这个监听事件中,使用emit发送输入的数据,注意:emit中的第一个参数,是自定义事件名,谁监听谁的事件名就要和这个保持一致。
组件中的代码:
<template>
<div class="wrapper">
<input type="text" v-model="content" @input="changeListener">
</div>
</template>
<script>
import eventBus from '../../assets/eventBus.js'
export default {
components:{},
props:{},
data(){
return {
content:""
}
},
watch:{},
computed:{},
methods:{
changeListener:function(){
//console.log(this.content);
eventBus.$emit("upContent",this.content);
}
},
created()