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 相关文章推荐
Google韩国首页图标动画效果
Aug 26 Javascript
jQuery实现图片放大预览实现原理及代码
Sep 12 Javascript
JS中递归函数
Jun 17 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
学习使用Bootstrap栅格系统
May 11 Javascript
利用JS制作万年历的方法
Aug 16 Javascript
Node做中转服务器转发接口
Oct 18 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
Oct 27 Javascript
vue中使用echarts制作圆环图的实例代码
Jul 27 Javascript
VUE v-model表单数据双向绑定完整示例
Jan 21 Javascript
解决layui表格的表头不滚动的问题
Sep 04 Javascript
js实现选项卡效果
Mar 07 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+mysql一个名片库程序
2006/10/09 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
php 的反射详解及示例代码
2016/08/25 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
新闻内页-JS分页
2006/06/07 Javascript
jquery中ajax学习笔记一
2011/10/16 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
中止javascript执行的方法
2014/02/14 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
详解JavaScript的变量和数据类型
2015/11/27 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
react实现菜单权限控制的方法
2017/12/11 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
梳理一下vue中的生命周期
2020/12/30 Vue.js
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
Python随机读取文件实现实例
2017/05/25 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
python re的findall和finditer的区别详解
2020/11/15 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
365 Tickets英国:全球景点门票
2019/07/06 全球购物
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
总经理驾驶员岗位职责
2013/12/04 职场文书
在校学生职业规划范文
2014/01/08 职场文书
培训讲师邀请函
2014/01/10 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
采购意向书范本
2014/03/31 职场文书
土地租赁意向书
2014/07/30 职场文书
法人委托书的范本格式
2014/09/11 职场文书
Python访问Redis的详细操作
2021/06/26 Python