在工作中使用 VUEX 进行状态管理,共享数据是非常方便的,要注意的是 vuex 的数据是存储在浏览器的内存中的,如果F5刷新了页面那之前申请的内存就会被释放,重新加载 js 脚本,这样一来我们之前存在 vuex 中的数据就没了。如果我们的一些重要的数据,例如 token 等,想要长时间的存放,可以存放在 localStorage/cookes 中。vuex 总共有 5 个属性供我们进行数据管理,具体如下:
- state:
是vuex中存放数据的最小也是最基本的单元,vuex的数据源。常规页面对于state中的数据最好只读取不要进行直接的修改,如果需要修改 state 中的属性值,可以通过官方推荐的 mutations 进行修改,具体用法请往下看。 - mutations:
相当于是 vuex 中的 methods,可以定义各种方法来进行对数据的处理,引入的第一个参数一般是 state 对象,第二个参数可以是通过函数传递过来进行操作的数据,在常规页面中触发 mutations 需要使用 commit 方法,常用$store.commit('your evevt',data),在 actions 中触发 mutations 中的方法可以在 actions 的方法中传入一个 context 对象,通过 context 来操作 mutations 中的方法,具体用法请往下看。 - actions:
actions 和 mutations 一样,都是用于存储方法的属性,但是 actions 是用来存储有异步行为的方法的,我们对于接口的请求就可以存在 actions 中,要注意的是,我们依旧不要直接修改 state 中的数据,如果涉及到对 state 中数据进行修改的操作,还是通过 mutations 中的方法作为媒介来更改 state 中的数据,可以在 actions 的方法中接受一个参数 context 放在第一个位置,然后通过 context.commit('mutations Event',val) 的形式触发 mutations 中的方法实现对 state 中的数据的修改。
未完待续-----