首先须要在任意地方添加一个bus.js;javascript
在bus.js里面 写入下面信息vue
import Vue from 'vue' export default new Vue;
在须要通讯的组件都引入Bus.js java
若是你的bus.js是自定义一个bus的文件那from后面就改为你的所放的位置函数
import Bus from './bus.js'
接下来就是要组件通讯了this
添加一个 触发 #emit的事件按钮router
<template> <div id="emit"> <button @click="bus">按钮</button> </div> </template> import Bus from './bus.js' export default { data() { return { message: ''" } }, methods: { bus () { Bus.$emit('msg', '我要传给兄弟组件们,你收到没有') } } }
打开要和$emit通讯的另一个组件 blog
在钩子函数中监听msg事件事件
<template> <div id="on"> <p>{{message}}</p> </div> </template> import Bus from './bus.js' export default { data() { return { href: 'www.dddddd//d/d/d' } }, mounted() { $("body").on("click",".router_itme",function(){
//发送方
}) } }
打开要和$emit通讯的另一个组件 ,在钩子函数中监听msg事件ip
<template> <div id="on"> <p>{{message}}</p> </div> </template> import Bus from './bus.js' export default { data() { return { href : '' } }, mounted(){ // this.href = location.href.split('#')[1] // 接收传header组件传过来的路径 let self = this; Bus.$on('hrefs', (e) => { self.href = e.split('#')[1] }) } }