vuex 中dispatch 和 commit 的用法和区别

import { forEach, isContains } from '@/libs/tools'

const state = {
  clusterId: null,
  selectObj: null,
}

const getters = {
  getClusterId: state => state.clusterId,
  getSelectObj: state => state.selectObj,
}

// 进行异步操作和ajax请求   this.$store.dispatch("initNodeList", data);
const actions = {
  initNodeList ({ commit, state }, nodeList) {
    commit('initNodeList', nodeList)
  }
}

// 执行同步操作改变state   this.$store.commit('changeNodeList', { key: 'name', val: newVal })
const mutations = {
  initNodeList (state, nodeList) {
    state.nodeList = nodeList
    state.backupList = nodeList
  },
  changeNodeList (state, payload) {
    // state.nodeList = nodeList;

    if (payload) {
      if (payload.key) {
        // key不为空,指定搜索
        let table = []
        forEach(state.backupList, (item, index) => {
          isContains(item[payload.key], payload.val) && table.push(item)
        })
        state.nodeList = table
      } else {
        // key为空,全局搜索
        let table = []
        forEach(state.backupList, (item, index) => {
          forEach(Object.values(item), (val, index) => {
            isContains(val, payload.val) && table.push(item)
          })
        })
        state.nodeList = table
      }
    } else {
      state.nodeList = state.backupList
    }
  }
}

export default {
  state,
  getters,
  actions,
  mutations
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少言才不会咸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值