Vuex

114 阅读2分钟

Vuex

官方网址:vuex.vuejs.org/zh/guide/# vuex的使用

vuex在vue项目中的使用

一、环境准备

利用vue-cli全局包,下载脚手架项目,vuex基于这个脚手架项目使用

  • 1、创建项目

    • vue create vuex-demo
      
  • 2、进入项目根目录下载vuex

image.png

二、vuex的基础使用

  • 1、下载 --- 上一步已完成,这里可省略

    • npm i vuex@3
      
  • 2、main.js中引入

    • import Vuex from "vuex"
      
  • 3、注册

    • Vue.use(Vuex)
      
  • 4、实例化

    • const store = new Vuex.Store({})
      
  • 5、挂载

    • new Vue({
          store,
          ...
      })
      
  • 6、在app.vue中使用测试,如果打印出对象则成功

    • created(){
          console.log(this.$store)
      }
      

三、state

1、概念:state是放置公共状态的属性

2、基础使用

image-20220403093940920.png

3、使用优化

image-20220403094855887.png

4、辅助函数

目的:简化数据的使用

image-20220403100639238.png

四、mutations的使用

1、 概念

state数据的修改 只能通过mutations,并且mutations必须是同步更新。

2. 基础使用

image-20220403102806846.png

3、辅助函数

简化mutations的使用

image-20220403105045845.png

4、不通过mutations修改数据,严格模式下会报错,也没有真正改到数据,所以我们不允许这样的操作

image-20220403110119037.png

5、验证mutations只能写同步代码

image-20220403110551813.png

五、actions的使用

1、概念

actions负责进行异步操作 dispatch

2、基础使用

image-20220403111804530.png

3、辅助函数的使用

简化actions的使用

image-20220403114801618.png

六、getters的使用

1、概念

除state之外,有时我们需要从state中派生出一些状态,这些状态依赖state的,此时会用到getters。

2、作用

  • 1、简写state中数据的操作

image-20220403121431719.png

3、基本使用

4、辅助函数

作用:简写getters的使用

image.png

七、modules的使用

1、概念

当所有状态都汇集到一个对象state中时,代码有可能变的臃肿,对导致vuex越来越难以维护,由此,我们可以分类管理不同的状态,这种分类管理的方法,就是模块化管理。

2、基本使用

image-20220403123216938.png

3、优化使用

image-20220403144657270.png

4、命名空间锁的使用

给模块添加namespaced属性并设置为true,即可为模块上锁。

作用:使得模块内mutations、actions、getters都成为局部的属性,访问其中的属性或方法必须通过模块名访问。

image-20220403151245799.png

5、辅助函数-带模块名的使用

作用:简化命名空间模块中mutations函数的使用

image-20220403153846419.png

6、命名空间辅助函数

作用:简化获取命名空间中的数据

命名空间的辅助函数 createNamespacedHelpers

image-20220403155951549.png

七、解决变量或方法重名问题

image-20220403162134485.png

八、vuex的封装

目的:便于管理维护数据

image-20220403164949669.png