之前项目用的是 vuex 0.x 版本,每个自定义组件中的 state 都是在组建 vuex 属性里面返回的,类似:
vuex: {
getters: {
currentPeriod: state => state.currentPeriod
},
actions: {
changeCurrentPeriod
}
}
升级 vuex 2.x 后,看教程的 sample 都没有用 vuex 属性了,直接在 component 的 computed 的方法中,用 mapGetter 来取 state 中的值,类似:
computed: mapGetter(['currentPeriod'])
我的问题是,拿到所有情况下都将 mapGetter 的 state 内容放在 computed 对象上?data() { return {} }
好像不支持 mapGetter 。
另外,有用了 vuex 2.x 后,自定义组件还保留了 vuex 属性的例子吗?看了一圈 github 的些 vue + vuex 2 项目都用的 mapGetters 和 mapSetters 。
1
445141126 2017-04-12 16:08:16 +08:00
mapState, mapGetters 放在 computed, mapActions, mapMutations 放在 methods
|
2
gap OP @445141126
我现在遇到个问题, data 中用到的 state 返回了 undefined ,貌似是 computed 属性返回慢了一步? ```js data() { return { selectedPeriod: this.currentPeriod // view 中访问 this.selectedPeriod.from 报错 } }, computed: mapGetter(['currentPeriod']) ``` |
3
445141126 2017-04-12 17:07:43 +08:00 1
对, 你可以在 created 里面再给 data 赋值
|