Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。
1、基础使用
先写一个名为Box的父组件,引入两个子组件son1和son2,然后,写一个挂载之后的name的全局状态的值
son1子组件里放一个有click的内置事件里的change函数是this.$store.dispatch()方法用来触发action里的函数,这里忘了说vuex的五大核心State、Getter、Action、Module、Mutation。
state里可以存放全局状态数据
getter是vuex里的计算属性,state与getter有直接的关联,state的值发生改变getter的值也会随之变化
mutation 只有mutation属性可以修改state的值,通过commit方法触发
action action里可以放异步的操作,通过dispatch触发
module 在modules下,创建自定义的模块名字里其他的四个核心不变,可以在模块里添加命名空间防止各个模块产生冲突
son2子组件里放一个跟son1一样的change函数是commit方法来触发mutation
先importvue和vuex两个插件,先创建一个Vuex实例,实例里创建全局状态值,首先点击son1组件的改年龄按钮,dispatch方法触发实例里的actions里的changeAgeAction函数,函数里又有commit方法和params传递的值,方法触发了mutations里的changeAge函数把把age的全局值改成777,然后son1组件个son2组件的age值都会发生改变,再来点击son2组件的改名按钮,commit方法直接触发实例的mutations里的changeName函数同理把name的全局值改为110,然后son1和son2也会发生改变,getters里的duble函数的值是随着state.age的值*2的变化(这里因为mutation里有两个函数所以在tion后面加上s)当age变为777时,gettes会变成1554。
Yours NZ-1911
hao