vuex的基础用法

416 阅读1分钟

为了更方便的管理vue中的数据,需要了解并掌握官方提供的vuex

vuex是什么Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式

vuex的使用步骤:

  1. 在Vue项目中引入Vuex,并配置Vuex 2.在Vuex中定义公共数据及相应的操作方法 3.在任意组件中使用Vuex(必写项如下:)

(1). 读取公共数据 (2). 修改公共数据 会直接影响到所有使用公共数据的组件

erDiagram
Vuex ||..|{ state : attribute
Vuex ||..|{ mutations : attribute
Vuex ||..|{ getters : attribute
Vuex ||..|{ actions : attribute
Vuex ||..|{ modules : attribute
state||..|{ object: use
mutations||..|{ function: use
getters||..|{ function: use
actions||..|{ request: use
modules||..|{ allOfThis: use

在使用前需要安装引入:1.安装:npm i vuex 2. 配置:在src目录下创建store文件夹新建文件store.js 并配置如下代码:

`import Vuex from 'vuex'

Vue.use(Vuex) const store = new Vuex.Store({ state: { name:'' } }) export defalut store`

  1. 使用store实例:在项目的main.js中引入 `import store from './store'

new Vue({ // 省略其他... store //注入Vue实例 })`

属性作用定义使用
state统一定义公共数据(类似于data)state:{name:'张三'}{{$store.state.name}}
mutations修改数据mutations:{mutation名:function(state ,载荷) { }}方式1:this.$store.commit('mutation名', 载荷)方式2(map辅助函数):methods: { ...mapMutations(['mutation名']), ...mapMutations({'新名字': 'mutation名'})}
getters在state的基础上,派生出新的数据项getters: {getter的名字: function(state) {return 要返回的值}}方式1:$store.getters.getter的名字方式2(map辅助函数):computed: { ...mapGetters(['xxx']),...mapGetters({'新名字': 'xxx'})}
actions一般用来发送请求 actions: {// context对象会自动传入,它与store示例具有相同的方法和context对象action的名字: function(context, 载荷) {// 1. 发异步请求, 请求数据// 2. commit调用mutation来修改/保存数据// context.commit('mutation名', 载荷)}}方式1:this.$store.dispatch('actions的名字', 参数)方式2(map辅助函数):methods: { ...mapActions(['mutation名']), ...mapActions({'新名字': 'mutation名'})}
modules一般用来扩展vuex modules: {模块名: {// 这个为true,则在使用mutations时,就必须要加上模块名namespaced: true, state: {},getters: {},mutations: {},actions: {},modules: {}}}如果namespaced为true,则需要额外去补充模块名; 如果namespaced为false,则不需要额外补充模块名