vuex是一个仓库,是vue的状态管理工具,用来存放公共数据,任何的插件都可以使用vuex的数据。
安装vuex的固化插件:
安装:npm i vuex-persistedstate
之后在根目录下的store文件夹中的index.js文件里配置
import Vue from 'vue'
import Vuex from 'vuex'
import pers from 'vuex-persisyedstate'
Vue.use(Vuex)
export default new Vuex.Store({
plugins: [pers()],
state: {},
mutations: {},
actions: {},
modules: {}
})
Vuex是vue的状态管理工具,他有五大核心分别是:
State 存放数据,使用this.$store.state
Getters 计算属性 使用this.$store.getter
Mutations 可以改变state里面的状态,是同步操作,使用this.$store.commit
Actions 是异步操作,它也可以改变state里面的状态,使用this.$store.dispatch
Modules 可以做模块化的处理
而在vuex里面也有缺点:
他只适合中大型的项目,并且刷新的时候数据容易丢失
解决办法:我可以使用固化插件,实现持久化存储,如果不让使用固化插件,也可以结合本地存储来解决
Vaux的执行机制:
如果来改变state的状态,我们一般在组件里面调用this.$store.dispatch方法来触发actions里面的方法,在actions里面的方法来通过commit来调用mutations里面的方法来改变state
Vuex的四个辅助函数:
Mapstate
Mapgetters
Mapmutations
Mapaction
Vuex的命名空间
与state同级
命名空间在module里面设置
开启命名空间:namespaced:true