使用EventBus实现兄弟组件之间的通信
使用EventBus实现兄弟组件之间的通信
需求:为了实现菜单折叠的效果,例如http://blog.gdfengshuo.com/example/work/#/dashboard
header组件和sliderbar组件都是main组件下面的子组件,两者为兄弟关系。
现有下面的思路:
点击折叠按钮,触发事件,让main组件和sliderbar组件 分别改变各自的样式。
即:兄弟组件通信
方法
1. 新建bus.js
import Vue from 'vue';
// 使用 Event Bus
const bus = new Vue();
export default bus;
2. header组件触发事件
header.vue
<div class="collapse-btn" @click="collapseChage">
<i class="el-icon-menu"></i>
</div>
<script>
import bus from '../common/bus'; // bie忘记引入 我没有挂载到vue实例上,需要自己引入
export default {
data() {
return {
collapse: false
}
},
methods:{
// 侧边栏折叠
collapseChage(){
this.collapse = !this.collapse;
bus.$emit('collapse', this.collapse);
}
}
}
</script>
3. 在silderbar组建中监听该事件,and to do something...
<el-menu
class="sidebar-el-menu"
:default-active="onRoutes"
:collapse="collapse"
background-color="#324157"
text-color="#bfcbd9"
active-text-color="#20a0ff"
unique-opened
router>
</el-menu>
<script>
import bus from '../common/bus'; // bie忘记引入 我没有挂载到vue实例上,需要自己引入
export default {
data() {
return {
collapse: false
}
},
created(){
// 通过 Event Bus 进行组件间通信,来折叠侧边栏
bus.$on('collapse', msg => {
this.collapse = msg;
})
}
}
</script>
补充
VUE 爬坑之旅-- eventBus 事件总线的基本使用和重复触发事件问题的解决
爬坑之旅-- eventBus 事件总线的基本使用和重复触发事件问题的解决
使用EventBus实现兄弟组件之间的通信的更多相关文章
- vue工程利用pubsub-js实现兄弟组件之间的通信
前言 项目是基于vue-cli创建的,不会搭建vue开发环境的同学可以百度,这里不再赘述. 步骤流程 vue项目搭建完成之后的文件图如下: 我的上一篇博客已经详细叙述vue工程中各个文件的作用,不清楚 ...
- Vue 使用eventBus 实现兄弟组件间的通信
实现方式: 主要是在相互通信的兄弟组件之中,都引入一个新的vue实例,然后通过分别调用这个实例的事件触发事件广播 和监听来实现通信和参数传递. 需求: a页面tree的增删改后,数据还是之前的老数据 ...
- vue父子组件、兄弟组件之间的通信和访问
注意:1. vue组件间的通信其实有很多种方法,最常用的还是属性传值.事件传值.vuex; 其他方法参考 https://juejin.im/post/5bd18c72e51d455e3f6e4334 ...
- vuejs兄弟组件之间的通信
var Event = new Vue();//准备一个空的实例对象 //A组件 var A = { template: ` <div> <span>我是A组件的数据-> ...
- Vue2.0父子组件之间和兄弟组件之间的数据交互
熟悉了Vue.js的同级组件之间通信,写此文章,以便记录. Vue是一个轻量级的渐进式框架,对于它的一些特性和优点,请在官网上进行查看,不再赘述. 使用NPM及相关命令行工具初始化的Vue工程,目录结 ...
- vue中组件之间的通信
一.vue中组件通信的种类 父组件向子组件的通信 子组件向父组件的通信 隔代组件之间的通信 兄弟 组件 之间的通信 二.实现通信的方式 props vue自定义的事件 消息订阅与发布 vuex sl ...
- vue2.0s中eventBus实现兄弟组件通信
在vue1.0中,组件之间的通信主要通过vm.$dispatch沿着父链向上传播和用vm.$broadcast向下广播来实现.然而在vue2.0中,已经废除了这种用法. vuex加入后,对组件之间的通 ...
- React生命周期, 兄弟组件之间通信
1.一个demo(https://www.reactjscn.com/docs/state-and-lifecycle.html) class Clock extends React.Componen ...
- vue组件之间的通信, 父子组件通信,兄弟组件通信
组件通讯包括:父子组件间的通信和兄弟组件间的通信.在组件化系统构建中,组件间通信必不可少的. 父组件--> 子组件 1. 属性设置 父组件关键代码如下: <template> < ...
随机推荐
- 转/keystore和truststore的区别
keytool是java自带的工具用于产生密钥 keystore可以看成一个放key的库,key就是公钥,私钥,数字签名等组成的一个信息. truststore是放信任的证书的一个store. 那他们 ...
- LeetCode第21题:合并两个有序链表
题目描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1- ...
- [学习笔记]scanf弊端以及解决方案
#include<stdio.h> #include<stdlib.h> #include<unistd.h> int main(void) { ]; //mems ...
- C#中virtual和abstract区别,举例子
virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义. 它们有一个共同点:如果用来修饰方法,前面必须添加public,要不然就会出现编译错误:虚拟方法或抽象方法是不能 ...
- WinForm 生命周期, WinForm 事件执行顺序
1.窗体启动: Control.HandleCreatedControl.BindingContextChangedForm.LoadControl.VisibleChangedForm.Activa ...
- 提取pfx证书公钥和私钥
从pfx提取密钥信息,并转换为key格式(pfx使用pkcs12模式补足) 1.提取密钥对(如果pfx证书已加密,会提示输入密码.) openssl pkcs12 -in 1.pfx -nocerts ...
- 更新XML的Attribute(属性)
有一个XML文档,一个属性"pk"错了,正确是2.我们怎样把它更改正确?原XML文档如下: <?xml version="1.0" encoding=&q ...
- git 使用那些事儿
本文来自网易云社区 作者:孙有军 工欲善其事,必先利其器,git是一个开源的分布式版本控制工具,很多文章都写的太长,或者资料太多,难以一时间看完.在此总结了git的一些使用方式,因此该文不是鸿篇巨著, ...
- Django会话,用户和注册之用户认证
通过session,我们可以在多次浏览器请求中保持数据, 接下来的部分就是用session来处理用户登录了. 当然,不能仅凭用户的一面之词,我们就相信,所以我们需要认证. 当然了,Django 也提供 ...
- 20164305 徐广皓 Exp6 信息搜集与漏洞扫描
信息搜集技术与隐私保护 间接收集 无物理连接,不访问目标,使用第三方信息源 使用whois/DNS获取ip 使用msf中的辅助模块进行信息收集,具体指令可以在auxiliary/gather中进行查询 ...