Vue项目实战(四)- 组件之间的通信

友情链接

Vue项目实战(一)- 从0到1的蜕变
Vue项目实战(二)- 引入JQuery等第三方库
Vue项目实战(三)- 组件的注册和使用
Vue项目实战(四)- 组件之间的通信

组件之间的通信原理

其实组件之间的通信非常简单,只需要简单的加一个第三方事件管理器就可以了,比如在组件A中点击某个按钮想要通知组件B做一些操作,
那么只需要让组件A告诉管理器我想要触发某事件,而组件B只需要监听这个事件,就可以被触发,关系图如下:

这里写图片描述

组件之间的通信实践

现在上具体代码

1、添加eventBus作为事件枢纽,放在src/assets里面,命名为eventBus.js

//代码很少,就两行就可以了
import Vue from 'vue'
export default new Vue

2、在组件A中触发某事件,代码也很简单,只需要两步骤

//在script标签内最开始导入bus文件
import bus from "../assets/eventBus"

//在Vue事件中使用bus,这是一个点击事件,点击后通过$emit来注册事件
//其中test是向事件中枢注册的事件名,index是参数
itemClick:function(index,event){
    bus.$emit("test",index);
}

3、在组件B中监听事件test,当组件A触发test时,这里就能执行相应的操作

//第一步同样是导入bus文件
import bus from "../assets/eventBus"

/*
* 监听事件test,放在mounted里面即可
* 当监听到test事件是触发后面的匿名回调函数
* 注意回调函数中Vue的数据不能通过this来访问,而是需要在外面将this赋给一个变量
*/
mounted(){
    var self = this;
    bus.$on("test",function(msg){
    self.currentWebIndex = msg;
    });
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值