vuex状态管理\事件总线EventBus

状态管理

1.为什么要有状态管理??

答:大型应用往往有多个组件封装而成,会遇到多个组件共享状态的情况,单向数据流的简洁性被破坏。主要问题为:1.多个视图依赖同一状态;2.不同试图的行为需要改变同一状态。

2.使用:

①安装好vuex

②创建一个store仓库,仓库中包括:state(状态),mutations(方法),module(可以将仓库分模块);

③同注册路由方式一样,将store挂载到vue实例中;

④在其他组件中调用状态和方法:this.$store.state.prop调用特定的状态;this.$store.commit('fun')提交状态变更,fun方法在mutations中声明。

事件总线EventBus

事件总线可以把相应的事件定义为全局事件,利用$EventBus调用事件 完成不同组件之间的事件调用,或者是事件传递。

使用方法1:首先,在项目中注册EventBus

mainjs中实例化EvenBus;
Vue.prototype.$EventBus = new Vue();

然后,在相应的组件中触发事件

this.$EventBus.$emit("shareFile", [row]);
//shareFile为事件名称,[row]为参数

最后在需要接受的组件中接受事件获取参数并执行

this.$EventBus.$on("shareFile", (file) => {
      this.dialogShareFile.visible = true;
      this.dialogShareFile.shareFile = file;
    });

 this.$EventBus.$off("shareFile");//为减少冗余,一般在实例摧毁前需要清除事件监听

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值