Vuex的一个易错点

  好长时间不用Vuex,发现有些东西记模糊了。

  在对Vuex进行模块化开发的时候,

const store = new Vuex.Store({
  modules: {
    a: moduleA,
    b: moduleB
  }
})

  我们可以通过store.state.a取得 moduleA 的状态,在store注入到vue实例的时候,子组件可以通过this.$store.state.a取得。但要注意的是,这是在vue组件里可以这样使用。我们在构建store仓库的时候,是无法使用this.$store的,因为组件里的this指向的是vue实例,而store仓库的this并不指向vue实例。

const actions = {
  increment: ({ commit }) => {
    console.log(this)  // 这是错误用法
    console.log($store)  // 这是错误用法
    commit('increment')
  },
  decrement: ({ commit }) => commit('decrement')
}

  因此,在store仓库里,我们getters、mutations和actions传参时,都要根据api说明的来获取可以获取的state, commit, rootState,getters。mutations只能获取局部的state,而actions不仅可以获取局部state还可以获取根节点的state(rootState),也可以dispatch等。

 

 

转载于:https://www.cnblogs.com/zhansu/p/10521973.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值