(十)Vuex

Vuex

定义: Vuex是一个专为vue.js应用程序开发的状态管理模式
它采用集中式存储管理应用的所有组件状态,并以相应的规则保证状态以一种可预测的方式发生改变。
官网:[https://vuex.vuejs.org/zh/installation.html]
安装:npm install vuex --save
创建对象
在这里插入图片描述
挂载到Vue实例
在这里插入图片描述

状态管理状态图

在这里插入图片描述
简单说明:State存储所有的状态参数,通过render渲染到Vue组件,当我们需要改变State的状态时,可以直接Commit到Mutations中更改,这时可以使用Devtool浏览器插件查看到状态更改的历史记录。如果需要异步请求可以先在Vue组件中Dispatch到Actions中处理后再Commit到Mutations处理。最终达到更改State的目的。

Vuex五个核心概念

State: 存储状态
Getters: 属性方法定义
Mutations:更改状态
Actions: 异步请求
Module: 模块化

一、State单一状态树

state单一状态树,或者称之为单一数据源。(简单说统一存放状态的地方)
在这里插入图片描述

二、Getters

定义
在这里插入图片描述
组件中调用
在这里插入图片描述

三、Mutations

在组件中定义事件,触发时,this.$store.commit('方法',参数)触发Mutations方法,
1、传递参数,当使用常规方式传递时,Mutations中的函数可以直接接收,当使用其他格式传递时,接受的payload是一个对象。
2、对于数据的增加和删除数据常规方法,无状态响应。我们需要使用Vue.set(对象,Key,Value),删除Vue.delete(对象,Key)
在这里插入图片描述
在这里插入图片描述
3、常量类型 - 概念(在store文件夹下新增mutations-type.js,输入类似export const [INCREMENT] = ‘increment’,定义别名,后期方可在组件和Vuex对象定义时使用)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、Actions

作用: 处理一步请求等相关问题,组件先通过Vue组件dispatch到actions。这里注意请求完成后的确认处理

基本使用

1、组件
在这里插入图片描述
2、actions部分
在这里插入图片描述
对于Promise进一步理解
在这里插入图片描述
在这里插入图片描述

五、Modules模块

1、在根部的modules中定义指定模块
2、在新的模块中同样拥有state、actions、getters、mutations、modules。
3、在actions中可以直接commit根部的方法
4、getters可以使用rootState获取根部的状态
在这里插入图片描述
子模块中Actions中context拥有的对象
在这里插入图片描述

六、项目结构

Vue建议我们可以将store分文件处理,也就是actions和mutations分为一模块,modules新建一个文件夹modules,然后再分模块新建文件夹,再细分文件
在这里插入图片描述

使用过程

store中的index.jsstate定义状态,在要是用的模块中使用this.$store.state.变量获取变量。在index.jsmutations创建改变state的逻辑。然后在要改变模块中定义事件来出发这个mutations中的方法this.$store.commit("方法")。从而使得整个state变量全局改变。

补充
// 组件
    computed: {
        ...mapState({   // vuex中mapState可以一次取出多个state值
            tags: (state) => state.tab.tabslist,
        })
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值