vue2利用Bus.js如何实现非父子组件通信详解


Posted in Javascript onAugust 25, 2017

前言

大家应该都知道,vue2中废弃了$dispatch和$broadcast广播和分发事件的方法。父子组件中可以用props和$emit()。如何实现非父子组件间的通信,可以通过实例一个vue实例Bus作为媒介,要相互通信的兄弟组件之中,都引入Bus,然后通过分别调用Bus事件触发和监听来实现通信和参数传递。下面话不多说了,来一起看看详细的介绍吧。

Bus.js可以是这样

import Vue from 'vue'
export default new Vue()

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

import Bus from '../common/js/bus.js'

添加一个button,点击后$emit一个事件

<button @click="toBus">子组件传给兄弟组件</button>

methods

methods: {
 toBus () {
  Bus.$emit('on', '来自兄弟组件')
 }
 }

另一个组件也import Bus.js 在钩子函数中监听on事件

import Bus from '../common/js/bus.js'
export default {
 data() {
  return {
  message: ''
  }
 },
 mounted() {
  Bus.$on('on', (msg) => {
   this.message = msg
  })
  }
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascript document.execCommand() 常用解析
Dec 14 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
Jan 13 Javascript
JS实现图片横向滚动效果示例代码
Sep 04 Javascript
jQuery学习笔记之2个小技巧
Jan 19 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
Feb 06 Javascript
原生javascript实现匀速运动动画效果
Feb 26 Javascript
详解AngularJS控制器的使用
Mar 09 Javascript
有关jQuery中parent()和siblings()的小问题
Jun 01 Javascript
AngularJS 模型详细介绍及实例代码
Jul 27 Javascript
jQuery 判断是否包含在数组中Array[]的方法
Aug 03 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
Jan 30 Javascript
使用JS实现简易计算器
Jun 14 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
Aug 25 #Javascript
在Js页面通过POST传递参数跳转到新页面详解
Aug 25 #Javascript
Vue上传组件vue Simple Uploader的用法示例
Aug 25 #Javascript
DVA框架统一处理所有页面的loading状态
Aug 25 #Javascript
基于JavaScript实现评论框展开和隐藏功能
Aug 25 #Javascript
js求数组中全部数字可拼接出的最大整数示例代码
Aug 25 #Javascript
Vue.js进行查询操作的实例详解
Aug 25 #Javascript
You might like
PHP 表单提交给自己
2008/07/24 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
JQuery从头学起第二讲
2010/07/04 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
python win32 简单操作方法
2017/05/25 Python
python 多个参数不为空校验方法
2019/02/14 Python
python 获得任意路径下的文件及其根目录的方法
2019/02/16 Python
python如何实现数据的线性拟合
2019/07/19 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
python连接mysql有哪些方法
2020/06/24 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
优秀教师获奖感言
2014/01/31 职场文书
生态养殖创业计划书
2014/05/06 职场文书
个人求职自荐信范文
2015/03/06 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
人生感悟经典句子
2019/08/20 职场文书
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫