uniapp Vuex 状态管理模式基本使用

一、uniapp 引入定义挂载Vuex

1、在根目录下建立store目录创建index.js文件

创建store目录
代码如下

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

Vue.use(Vuex)

export default new Vuex.Store({
	//相当于data
	state:{ 
		loginStatus:false
	},
	//相当于computed
	getters:{
		reverseLoginStatus(state){
		    return state.loginStatus + 1
		}
	},
	//相当于methods
	mutations:{ 
		changeLoginStatus(state,playload){
			state.loginStatus = playload.num;
		}
	},
	//可以同时执行多个mutations方法
	actions:{
		loginStatusAction(context,playload){
			console.log(playload)
			context.commit('changeLoginStatus',{num: playload.number})
		}
	}
})
2、在mian.js 中挂载store
import Vue from 'vue'
import App from './App'
import store from './store/index.js' // 引入

Vue.prototype.$store = store // 定义成全局组件

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
	store, //挂载
    ...App
})
app.$mount()

二、uniapp中使用vuex

1、直接调用state中的值
this.$store.state.loginStatus
2、修改state中的值

这里需要在mutations中定义修改的方法,如上changeLoginStatus

this.$store.commit('changeLoginStatus',{num:123,age:12}) //调用vuex中的mutations方法
3、调用actions中的方法
this.$store.dispatch('loginStatusAction',{number:123}) //调用vuex中的actions方法
4、调用getters中的方法
this.$store.getters.reverseLoginStatus //调用vuex中的getters方法
5、状态方法监控
//导入vuex的mapState跟mapMutations方法
import {mapState,mapMutations} from 'vuex'

methods: {
	//对全局方法changeLoginStatus进行监控
	...mapMutations(['changeLoginStatus'])
},
computed:{
	//对全局变量loginStatus进行监控
	...mapState(['loginStatus'])
}
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值