【11.0】Vue之状态管理器(Vuex)的使用

vuex

【一】介绍

  • vuex :状态管理器---》存数据(变量)的地方,所有组件都可以操作

  • 在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信

  • Vuex是一个用于集中式状态管理的Vue插件。
    • 在Vue应用中,组件间共享的数据通常需要通过props逐级传递,但对于较深层级的组件或跨组件的通信,这种方式可能会导致代码冗余和不易维护。
    • 而使用Vuex,我们可以将共享的状态集中存储在一个地方,并允许任何组件以可预测的方式进行读取和修改。

【二】何时使用

【1】Vuex图解

  • vuex 对象中通过 state 来存储状态

    • 除了 state 以外还有用来操作 state 中数据的方法集
    • 以及当我们需要对 state 中的数据需要加工的方法集等等成员。
  • 成员列表:

    • state:存放状态(全局状态数据) 必填项

    • mutations:对于 state 成员进行同步修改操作(也可以支持异步操作)

    • getters:获取 state 中的数据,类似于组件中的计算属性

    • actions:进行异步操作,异步得到结果后通知 mutation 修改 state 成员

    • modules:模块化状态管理,多状态文件管理时使用,开发项目时多为多模块项目

  • 在多模块 vuex 中会有配置namespaced:true开启命名空间。

【2】Vuex执行流程

  • vue 组件会从 vuex 的 state 中获取数据,当组件修改数据时,会经过以下流程:

    • 当触发同步操作时:
      • vue 组件通过 commit 方法通知 mutations (同时 mutations 会在 Devtools 调试工具中记录发生的操作)设置 state 数据,数据设置完成后,state 响应式的让组件重新渲染。

    注意:vuex 存储的数据是响应式的,只要 state 中的数据发成改变,视图就会重新渲染。

  • 当触发异步操作时:

    • vue 组件通过 dispatch 方法通知 actions 和 API交互,从而得到数据,actions 得到数据之后通过 commit 方法通知 mutations (同时 mutations 会在 Devtools 调试工具中记录发生的操作)设置 state 数据,数据设置完成后,state 响应式的让组件重新渲染。

    • 这里可以看出,在 vuex 中,我们可以把网络请求写在 API 方法中。

  • 扩展:
    • 早期 mutations 只允许同步操作,如果要进行异步操作需要按照上述流程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值