Vuex总结

Vuex 总结

Vuex是专为vue.js开发的状态管理模式+库,也是实现组件之间通信的一种手段,当项目很大时,组件和组件之间层层嵌套,原始的传值方式十分繁琐,这就用到了Vuex,用来作为外部仓库
Vuex实例内部有state,actions,mutations,getters

1.state

内部存放公共的一些数据,相当于数据的仓库,但要对state内部的数据进行修改,只能在Vuex内部的mutations中进行,组件中只能通过$store.state.变量名来访问state中的数据,可直接用插值表达式包裹展示到页面

2.actions

actions与mutations类似,actions内部可以进行一些异步操作,比如接口的调用,但actions无法修改state中的数据
可以在组件的methods中,进行actions的分发,通过this.$store.dispatch('actionsName',value),内部传Vuex中actions对应的名称,还有要传入的值
也可以通过映射的方式,该方法可以一次进行多个action的分发

methods:{
...mapActions(['actionsName'])//内部传入actions中方法名
	method(){
		this.actionsName(value)//在methods中调用方法传递参数
		}
}

在Vuex中,store文件夹下的index.js内部,action提交mutation,mutation去改变数据state,为了区分actions中的方法和mutations中的方法,将mutations中的同名方法采用大写书写
actions中函数有两个参数,context和value,value来自于组件,将传递给mutations

import Vue from 'vue';
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
    state: {
        count: 10,
    },

    mutations: {
        JIA(state, value) {
            state.count += value
        }
    },
    actions: {
        jia: function (context, value) {
            context.commit((JIA, value))
        }
    },
})
3.mutations

mutations直接对state中存储的数据进行操作,可以在组件methods中用this.$store.commit('METHODNAME',value)直接进行操作,当组件并没有一些复杂的异步操作,只是简单的传值改变仓库的状态,可以省略actions分发,直接commit到mutation今昔那个状态的更改
mutations也有…mapMutations这种映射,在组件中可以直接改变state中的数据

methods:{
…mapMutations([‘METHODNAME’]),//可以传多个MUTHODNAME,通过…将其混入methods中
this.METHODNAME(value)//如this.num
}

4.getters

相当于组件中的计算属性computed,可将state中的数值处理后导出,访问方式改变$store.getters.getterName

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值