首页 > 其他 > 详细

Vuex(二):getters和actions

时间:2020-03-06 22:31:36      阅读:99      评论:0      收藏:0      [点我收藏+]

【getters】

 个人理解:getters类似vue对象中的计算属性,在.vue文件中通过 $store.getters.方法名(可选参数) 进行调用,在vuex中的store内,getters内部的计算方法的第一个参数一定是state,第二个参数一定是getters自身,接收到的传参放置于return的函数内

1. getters不传参的情况

<h2>{{$store.getters.powerCounter}}</h2>
getters: {
    powerCounter (state) {
      return state.counter * state.counter
    }
  }

2. getters传参的情况

<h2>{{$store.getters.morethanAge(16)}}</h2>
getters: {
    morethanAge (state) {
      return function (age) {
        return state.students.filter(s => s.age > age)
      }
    }
  },

3. getters调用自身其他计算方法

<h2>{{$store.getters.useSelf}}</h2>
getters: {
    useSelf (state, getters) {
      return getters.powerCounter + 1234
    }
  },

 

【actions】

  个人理解:Action类似于Mutation, 但是是用来代替Mutation进行异步操作的.actions内方法的触发需要用$store.dispatch(‘方法名‘,可选参数),在actions内部,context用于代替上下文,大致可以理解为state对象。

<button @click="actionClick">ChangeName</button>
actionClick () {
      let done = ‘Done‘
      this.$store.dispatch(‘changeName‘, done)
    }
//模拟异步
actions: {
    changeName(context, done) {
      setTimeout(() => {
        context.commit(‘changeName‘)
        console.log(done)
      }, 1000);
    }
  }

 

Vuex(二):getters和actions

原文:https://www.cnblogs.com/xzweb/p/12431070.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!