vuex是vue的状态管理工具,能解决组件之间数据共享的问题
五大核心以及怎么调用
state 存放数据的地方 this.$store.state.xxx
mutations 修改state的地方 this.$store.commit()
getters 计算state的地方 this.$store.getters.xxx
actions 发送异步请求的地方 this.$store.dispatch()
modules 模块化 把数据分模块管理
vuex的执行机制
如果要修改state,先通过dispatch调用一个action再action里通过commit调用一个mutations修改state
vuex的弊端
浏览器刷新的时候,vuex的数据会丢失,可以通过安装持久化插件或者结合本地存储来解决。
当我们在mutations里面改变state的时候通过localStorage或者sessionStorage或者持久化插件存储到本地,然后再state的状态的属性值哪里写一个三元表达式,如果本地存储有数据的话则读取本地存储里的数据否则就赋值为null。
state:{
list:JSON.parse(localStorage.getItem("list"))||[]
}
state:{
list:localStorage.getItem("list")?JSON.parse(localStorage.getItem("list"):[];
}
开启vuex严格模式
跟state同级的地方设置strict:true;
开启严格模式后只能在mutations中修改state否则就会报错