说一说Vuex是什么,每个属性是干嘛的,如何使用 ?| 面试题

126 阅读1分钟

说一说Vuex是什么,每个属性是干嘛的,如何使用 ?

要点: state、mutations、getters、actions、module、store.commit、store.dispatch

答:

Vuex是用来集中管理项目公共数据的。

Vuex 有state、mutations 、getters、actions、module属性。

  • state: 存储公共管理的数据
  • mutations: 定义改变state中数据的方法。(备注:不要在mutation中的方法中写异步方法ajax,那样数据就不可跟踪了
  • getters: 定义 store 的计算属性。(就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。
  • action: 类似于 mutation,不同在于:Action 提交的是 mutation,而不是直接变更状态。Action 可以包含任意异步操作。
  • moudle: 将store分割成模块。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块,从上至下进行同样方式的分割。

使用方法:

  • state :直接以对象方式添加属性
  • mutations :通过store.commit调用
  • action:通过 store.dispatch 方法触发
  • getters:直接通过store.getters.调用

可以使用mapState、mapMutations、mapAction、mapGetters一次性获取每个属性下对应的多个方法。 VueX在大型项目中比较常用,非关系组件传递数据比较方便。