1、有哪几种属性
有 5 种,分别是 state、getter、mutation、action、module
state => 基本数据
getters => 从基本数据派生的数据
mutations => 提交更改数据的方法,同步!
actions => 像一个装饰器,包裹mutations,使之可以异步。
modules => 模块化Vuex
2、vuex 的 store 特性是什么
(1) vuex 就是一个仓库,仓库里放了很多对象。其中 state 就是数据源存放地,对应于一般 vue 对象里面的 data
(2) state 里面存放的数据是响应式的,vue 组件从 store 读取数据,若是 store 中的数据发生改变,依赖这相数据的组件也会发生更新
(3) 它通过 mapState 把全局的 state 和 getters 映射到当前组件的 computed 计算属性
3、 vuex 的 getter 特性是什么
(1) getter 可以对 state 进行计算操作,它就是 store 的计算属性
(2) 虽然在组件内也可以做计算属性,但是 getters 可以在多给件之间复用
(3) 如果一个状态只在一个组件内使用,是可以不用 getters
4、vuex 的 mutation 特性是什么
action 类似于 muation, 不同在于:action 提交的是 mutation,而不是直接变更状态
action 可以包含任意异步操作
5、vue 中 ajax 请求代码应该写在组件的methods中还是vuex 的action中
如果请求来的数据不是要被其他组件公用,仅仅在请求的组件内使用,就不需要放入 vuex 的 state 里
如果被其他地方复用,请将请求放入 action 里,方便复用,并包装成 promise 返回
6、不用 vuex 会带来什么问题
可维护性会下降,你要修改数据,你得维护3个地方
可读性下降,因为一个组件里的数据,你根本就看不出来是从哪里来的
增加耦合,大量的上传派发,会让耦合性大大的增加,本来Vue用Component就是为了减少耦合,现在这么用,和组件化的初衷相背