Vuex

Vuex

vuex官方网站

定义

  1. vuex是一个专门为Vue.js应用程序开的状态管理模式。
  2. 采用集中式存储管理应用的所有组件的状态。
  3. 以相应的规则保证以一种可以预测的方式发生变化。(响应式变化)

使用场景

多个视图依赖于同一状态。(读信息)
例如:多个页面需要访问同一信息。
来自不同视图的行为需要变更同一状态。(改信息)
例如:当购买会员之后,要在多个页面中进行修改。

1、组件会被销毁

假如有这样一个组件,他是弹窗,有一些复选框和输入框,用户会选择和填写信息;
然后这个弹窗会被关闭和打开,由于业务需要,这个弹窗输入的内容,希望关闭后可以保留,在重新打开后,内容依然存在。

2、组件基于数据而创建

用户登录后,读取权限配置表,这显然是一个异步操作;
这个配置表可能会影响很多页面。比如被影响的组件的加载条件,例如是
v-if="$store.state.userInfo.superVIP
那么:因为读取权限配置表这个异步操作,可能影响多个组件,而这些组件之间的关系,显然是不可预料的(即不一定是在同一个父组件下面);
那么这个异步操作,写在某一个组件里就不太合适(因为其他组件读取这个组件很不方便,即使他是根组件);

3、多对多事件——多处触发,影响多处

假如有一个事件,比如:切换页面显示风格,他将改变某一个变量的值;
当该变量为 true 时,那么页面风格为白天(主要影响 v-bind:style 的值);
当该变量为 false 时,那么页面风格为晚上(同上);
在多个地方可以切换这个页面风格开关;
毫无疑问,这个变量将影响多个地方的 v-bind:style 的值;
这就是 多对多 场景;
总而言之,假如你需要 数据 和 组件 分离,分别处理,那么使用 Vuex 是非常合适的。

vuex 一般用于中大型 web 单页应用中对应用的状态进行管理,对于一些组件间关系较为简单的小型应用,使用 vuex的必要性不是很大,因为完全可以用组件 prop 属性或者事件来完成父子组件之间的通信,vuex更多地用于解决跨组件通信以及作为数据中心集中式存储数据。

注意:如果不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。

Vuex的组成

state--------数据仓库
getter---------获取数据
mutation-----用来修改数据(同步)
action-------用来提交mutation(可以异步)

具体内容可查看官方文档

安装Vuex

安装vuex包:npm install vuex
创建vuex实例:

new Vuex.store()

在main.js中将vuex实例挂载在vue对象上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值