something about Vuex……

something about Vuex...

安装什么得应该不用多说了吧。。不会安装的点击官网链接

Vuex:https://vuex.vuejs.org/zh-cn/installation.html

引入使用:

在你的store或者vuex目录下创建一个store:

接下来是核心模块

state

mapState 辅助函数

getters

项目中我也没怎么用过,类似于计算属性

Getter 也可以接受其他 getter 作为第二个参数:

mapGetters 辅助函数去官网看吧 和mapState差不多。。

mutations

更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数:

你不能直接调用一个 mutation handler。这个选项更像是事件注册:“当触发一个类型为 increment 的 mutation 时,调用此函数。”要唤醒一个 mutation handler,你需要以相应的 type 调用 store.commit 方法:

payload可以是对象:

在组件中提交 Mutation

你可以在组件中使用 this.$store.commit('xxx') 提交 mutation,或者使用 mapMutations 辅助函数将组件中的 methods 映射为 store.commit 调用(需要在根节点注入 store)。

actions

Action 类似于 mutation,不同在于:

Action 提交的是 mutation,而不是直接变更状态。

Action 可以包含任意异步操作。

Action 通过 store.dispatch 方法触发:

实践中,我们会经常用到 ES2015 的 参数解构 来简化代码(特别是我们需要调用 很多次的时候):

Actions 支持同样的载荷方式和对象方式进行分发:

在组件中分发 Action

组合 Action深入了解见官网

modules

Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter

对于模块内部的 mutation 和 getter,接收的第一个参数是模块的局部状态对象。

同样,对于模块内部的 action,局部状态通过 context.state 暴露出来,根节点状态则为 context.rootState:

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180117G0GCF300?refer=cp_1026

扫码关注云+社区