vue2中废弃了$dispatch和$broadcast广播和分发事件的方法。父子组件中可以用props和$emit()。如何实现非父子组件间的通信,可以通过实例一个vue实例Bus作为媒介,要相互通信的兄弟组件之中,都引入Bus,之后通过分别调用Bus事件触发和监听来实现组件之间的通信和参数传递。

首先需要在任意地方添加一个bus.js

在bus.js里面 写入下面信息

 import Vue from 'vue'
2 export default new Vue;

在需要通信的组件都引入Bus.js

如果你的bus.js是自定义一个bus的文件那from后面就改成你的所放的位置

 import Bus from './bus.js'

接下来就是要组件通信了

添加一个 触发 #emit的事件按钮

<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通信的另外一个组件  添加

在钩子函数中监听msg事件

<template>
<div id="on">
<p>{{message}}</p>
</div>
</template> import Bus from './bus.js'
export default {
data() {
return {
message: ''
}
},
mounted() {
    let self = this
Bus.$on('msg', (e) => {
self.message = e
     console.log(`传来的数据是:${e}`)
})
}
}

最后p会显示来自$emit传来的信息

最新文章

  1. AngularJS Resource:与 RESTful API 交互
  2. zeroclipboard浏览器复制插件使用记录
  3. angular2 service component
  4. Java实现文件在某个目录的检索
  5. java中finally和return的执行顺序
  6. Android 图片闪烁(延迟切换)
  7. UVa 10071 - Back to High School Physics
  8. paip.环境设置 mybatis ibatis cfg 环境设置
  9. Java数据库ResultSet转json实现
  10. MM中如何更改物料的评估类
  11. [windows驱动]内核态驱动架构
  12. PHP性能优化-编译级别的缓存
  13. QC、IQC、IPQC、FQC、OQC
  14. java String 两种不同的赋值 比较
  15. Asp.net性能优化技巧
  16. 杭电 1795 The least one
  17. 文件队列 QueueFile
  18. poj1679(最小生成树)
  19. TortoiseGit for windows安装与配置
  20. es6知识总结--3

热门文章

  1. 九天学会Java,第一天,变量和数据类型,赋值和输出
  2. 学习CSS记录:选择符优先级
  3. Docker+Gogs搭建个人Git服务
  4. Day-1: Python准备知识
  5. Ubuntu14.04下搭建VPN服务 -pptp
  6. 分布式memcached-虚拟节点
  7. 浅析多线程 对象锁和Class锁
  8. 将位图导入为ArcGIS面要素
  9. 插入排序与希尔排序Java实现
  10. Spring中ApplicationContextAware的用法