vuejs事件中心管理组件间的通信详解


Posted in Javascript onAugust 09, 2017

本文为大家分享了vuejs事件中心管理组件间的通信,供大家参考,具体内容如下

事件中心

这个可以是一个空的全局的Vue实例,其他的组件利用这个实例emit和on自定义事件,这样组件定义了自己的事件处理方法。

import Vue from 'Vue'
window.eventHub = new Vue();

事件监听和注销监听

事件监听应在更组件的created钩子函数中进行,在组件销毁前应注销事件监听

//hook 
 created: function () {
 //listen event
 window.eventHub.$on('switchComments',this.switchComments);
 window.eventHub.$on('removeIssue',this.removeIssue);
 window.eventHub.$on('saveComment',this.saveComment);
 window.eventHub.$on('removeComment',this.removeComment);

 //get init data
 var that =this;
 axios.get('issue/index')
 .then(function (resp) {
  that.issue_list=resp.data;
 });
 },
 beforeDestroy: function () {
 window.eventHub.$off('switchComments');
 window.eventHub.$off('removeIssue');
 window.eventHub.$off('saveComment');
 window.eventHub.$off('removeComment');
 }

子组件的emit事件,注意这里用的window.$emit而不是this.emit

methods: {
 removeComment: function(index,cindex) {
  window.eventHub.$emit('removeComment', {index:index, cindex:cindex});
 },
 saveComment: function(index) {
  window.eventHub.$emit('saveComment', {index: index, comment: this.comment});
  this.comment="";
 }
 },

Note: 这其实还不是最理想的通信方式,下一篇我们看看vuex怎么玩

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
获取URL地址中的文件名和参数的javascript代码
Sep 02 Javascript
Javascript获取background属性中url的值
Oct 17 Javascript
js获取地址栏中传递的参数(两种方法)
Feb 08 Javascript
如何理解jQuery中的ajaxSubmit方法
Mar 13 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
Mar 30 Javascript
详解node如何让一个端口同时支持https与http
Jul 04 Javascript
JS中promise化微信小程序api
Apr 12 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
Sep 18 Javascript
JS跨域请求的问题解析
Dec 03 Javascript
javaScript中indexOf用法技巧
Nov 26 Javascript
JavaScript实现无限轮播效果
Nov 19 Javascript
原生js实现无缝轮播图效果
Jan 28 Javascript
JS实现的加减乘除四则运算计算器示例
Aug 09 #Javascript
AngularJS ionic手势事件的使用总结
Aug 09 #Javascript
Vue2.0实现将页面中表格数据导出excel的实例
Aug 09 #Javascript
webpack 1.x升级过程中的踩坑总结大全
Aug 09 #Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 #Javascript
javascript编程开发中取色器及封装$函数用法示例
Aug 09 #Javascript
vuejs父子组件之间数据交互详解
Aug 09 #Javascript
You might like
IP攻击升级,程序改进以对付新的攻击
2010/11/23 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
php简单统计中文个数的方法
2016/09/30 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
Python heapq使用详解及实例代码
2017/01/25 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
python Opencv将图片转为字符画
2021/02/19 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
Python Django 命名空间模式的实现
2019/08/09 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
会计主管岗位职责范文
2013/11/08 职场文书
销售业务员岗位职责
2014/01/29 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript