Vuex

Vuex——状态管理模式

在这里插入图片描述

创建

const store = new Vuex.Store({
state: {
        
    },
    mutations: {
            },
    actions: {

    },
    getters: {

    },
    modules: {

    }
})

state

state用来存放状态,也就是变量。Vuex 使用单一状态树,每个应用只对应一个vuex对象。
创建

state: {
        cartList: [],
        aaa: 1
    }

mutations

更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。
创建

mutations: {
        addCount(state, payload) {
            payload.count += 1
        },
        addToList(state, payload) { //state:当前的state,payload:伴随参数(载荷)
            state.cartList.push(payload)
        }
    }

改变状态需要通过commit提交

this.$store.commit('mutations', payload)

getters

类似于Vue实例中的计算方法computed,用于存放一些派生的状态和数据.
创建

  getters: {
    doneTodos: state => {
      return state.todos.filter(todo => todo.done)
    }
  }

actions

用于异步操作,但当有一些逻辑判断的处理时,也应当写入actions中。
创建

actions: {
        addToCartList(content, payload) { //content:当前store对象,payload:载荷
            let oldProduct = null
            for(let item of content.state.cartList) {
                if(item.iid === payload.iid) {
                    oldProduct = item
                }
            }
            if(oldProduct) {
                content.commit('addCount', oldProduct)
            }else {
                payload.count = 1
                content.commit('addToList', payload)
            }
            
        }
    }

提交状态

this.$store.dispatch('increment')

在action中应当有commit操作,使用actions只是在mutation前加了一个action 的操作

modules

将store划分为很多个模块,解决单一状态树带来的臃肿问题。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值