Vuex核心概念和API

state

  • vuex管理的状态对象
  • 是唯一的
const state = {
    xxx: initValue
}

mutations

  • 包含多个直接更新state的方法(回调函数)的对象
  • 由action中的commit('mutation名称')触发
  • 只能是同步代码,不可以异步
const mutation = {
    xxx(state, { data1 }){
        // 更新state的属性
    }
}

actions

  • 包含多个事件回调函数的对象
  • 执行commit()触发mutation调用,间接更新state
  • 在组件中用$store.dispatch('action名称', data1)触发
  • 可以是异步代码(定时器或者ajax)
const actions = {
    xxx({ commit, state }, data) {
        commit('yyy', { data1 })
    }
}

getters

  • 包含多个计算属性(get)的对象
  • 由组件中$store.getters.xx读取
const getters = {
    xxx(state){
        return ...
    }
}

modules

  • 包含多个module
  • 一个module是一个store的配置对象
  • 与一个组件(包含有共享数据)对应
  • 向外暴露store对象
export default new Vuex.store({
    state,
    mutations,
    actions,
    getters
})

组件中简化语法

import { mapState, mapGetters, mapActions } from 'vuex'
export default {
    computed: {
        ...mapState(['xxx']),
        ...mapGetters(['yyy'])
    },
    methods: mapActions(['zzz'])
}
// {{ xxx }} {{ yyy }} @click='zzz(data)'

映射store

import store from './store'
new Vue({
    store
})

store对象

  • 所有用vuex管理的组件中都多了一个属性$store,它是一个store对象
  • 属性
  1. state:注册的state对象
  2. getters:注册的getters对象
  • 方法:dispatch(actionName, data):分发调用action

结构图

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值