vue 使用eventBus实现同级组件的通讯


Posted in Javascript onMarch 02, 2018

新创建一个vue实例用于调度事件的绑定和发送

可以做到同级组件相互通讯,传递参数,点击第一个组件会修改第二个组件的label值,点击第二个组件会修改第二个组件的label值

vue 使用eventBus实现同级组件的通讯

vue 使用eventBus实现同级组件的通讯

vue 使用eventBus实现同级组件的通讯

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <script src="vue.js"></script>
</head>
<body>
<div id="app">
 <one></one>
 <two></two>
</div>
</body>
<script>
 // 使用一个vue实例 作为事件的载体,用于绑定事件和处理发送事件,作为调度中心
 let eventBus = new Vue()
 let one = {
  template: '<div>{{val}} <button @click="click">click</button></div>',
  data() {
   return {
    val: 0
   }
  },
  created() {
   //为one绑定事件,如果two_click事件发生了,则执行回调函数
   eventBus.$on('two_click',
    (val) => {
     // 这个this 指的是one的vue实例
     this.val = val
    }
   )
  },
  methods: {
   click() {
    // 如果one被点击了,则发送一个one_click的事件,并传递一个参数
    eventBus.$emit('one_click', 11)
   }
  }
 }
 let two = {
  template: '<div>{{val}} <button @click="click">click</button></div>',
  data() {
   return {
    val: 0
   }
  },
  created() {
   eventBus.$on('one_click',
    (val) => {
     this.val = val
    })
  },
  methods: {
   click() {
    eventBus.$emit('two_click', 22)
   }
  }
 }
 new Vue({
  el: '#app',
  components: {
   one,
   two
  }
 })
</script>
</html>

总结

以上所述是小编给大家介绍的vue 使用eventBus实现同级组件的通讯,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 设计模式 富有表现力的Javascript(一)
May 26 Javascript
JS TextArea字符串长度限制代码集合
Oct 31 Javascript
JQuery验证工具类搜集整理
Jan 16 Javascript
javascript数组操作总结和属性、方法介绍
Apr 05 Javascript
jQuery对象与DOM对象之间的相互转换
Mar 03 Javascript
浅谈javascript构造函数与实例化对象
Jun 22 Javascript
跟我学习javascript的for循环和for...in循环
Nov 18 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
Dec 26 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
Oct 26 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
JS数组去重的6种方法完整实例
Dec 08 Javascript
JavaScript实现京东放大镜效果
Dec 03 Javascript
详解node.js 下载图片的 2 种方式
Mar 02 #Javascript
vue2.0+vue-dplayer实现hls播放的示例
Mar 02 #Javascript
详解vue2.0+vue-video-player实现hls播放全过程
Mar 02 #Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
Mar 02 #Javascript
浅谈FastClick 填坑及源码解析
Mar 02 #Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 #Javascript
vue将时间戳转换成自定义时间格式的方法
Mar 02 #Javascript
You might like
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
AngularJS实现表单验证
2015/01/28 Javascript
nodejs调用cmd命令实现复制目录
2015/05/04 NodeJs
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
Python multiprocessing.Manager介绍和实例(进程间共享数据)
2014/11/21 Python
python Opencv将图片转为字符画
2021/02/19 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
python实现内存监控系统
2021/03/07 Python
Python面向对象之类的内置attr属性示例
2018/12/14 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
求职自荐信范文格式
2013/11/29 职场文书
党员四风剖析材料
2014/08/27 职场文书
外出听课学习心得体会
2016/01/15 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android
Nginx限流和黑名单配置
2022/05/20 Servers