vuex全局状态管理

// 定义Mutation
  const store = new Vuex.Store({
    state: {
      count: 0
    },
    mutations: {
      addN(state, step) {
        // 变更状态
        state.count += step
      }
    }
  })
// 触发mutation
  methods: {
    handle2() {
      // 在调用 commit 函数,
      // 触发 mutations 时携带参数
      this.$store.commit('addN', 3)
    }
  }     

this.$store.commit() 是触发 mutations 的第一种方式,触发 mutations 的第二种方式:

import { mapMutations } from 'vuex'




methods: {
  ...mapMutations(['add', 'addN'])
}

触发 actions 异步任务时携带参数:

// 定义 Action
  const store = new Vuex.Store({
    // ...省略其他代码
    mutations: {
      addN(state, step) {
        state.count += step
      }
    },
    actions: {
      addNAsync(context, step) {
        setTimeout(() => {
          context.commit('addN', step)
        }, 1000)
      }    
    }
  })     
// 触发 Action
  methods: {
    handle() {
      // 在调用 dispatch 函数,
      // 触发 actions 时携带参数
      this.$store.dispatch('addNAsync', 5)
    }
  }     

Getter 用于对 Store 中的数据进行加工处理形成新的数据。

Getter 可以对 Store 中已有的数据加工处理之后形成新的数据,类似 Vue 的计算属性。 Store 中数据发生变化,Getter 的数据也会跟着变化。

  // 定义 Getter
  const store = new Vuex.Store({
    state: {
      count: 0
    },
    getters: {
      showNum: state => {
        return '当前最新的数量是【'+ state.count +'】'
      }
    }
  })
this.$store.getters.名称
import { mapGetters } from 'vuex'

computed: {
  ...mapGetters(['showNum'])
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值