从0到1构建uniapp应用-store状态管理

背景

在 UniApp的开发中,状态管理的目标是确保应用数据的一致性,提升用户体验,并简化开发者的工作流程。通过合理的状态管理,可以有效地处理用户交互、数据同步和界面更新等问题。

此文主要用store来管理用户的登陆信息。

重要概念

1.  状态(State):状态代表了应用中数据的变化。在 UniApp Store 中,
     这可能包括用户信息、插件列表、购物车内容、交易详情等。
1.  动作(Action):动作是触发状态变化的操作。
     例如,用户点击购买按钮、更新插件信息或提交评分等行为都会产生相应的动作。

集成步骤

创建store目录

在目录下创建index.js文件,内容如下

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

Vue.use(Vuex)


const store = new Vuex.Store({
	//仓库中共有属性的集合,用于存储公共状态,只存储
	state: {
		hasLogin: false,//公共属性
		userInfo: {} //公共属性
	},
	//vuex中mutations是专门用来修改state中属性状态的方法集合(对象)
	mutations: {
		login(state, provider) { //方法名随便起,参数state是固定写法
			state.hasLogin = true;
			state.userInfo = provider;
			
			//store 存储json数据格式的用户信息
			uni.setStorageSync('userInfo', provider);
			uni.setStorageSync('thorui_token', provider.token)
			
			if(provider.roleList != null && provider.roleList != undefined && provider.roleList.length > 0){
				uni.setStorageSync('roleList', provider.roleList);
			}
		},
		logout(state) {
			state.hasLogin = false;
			state.userInfo = {};
			uni.removeStorageSync('userInfo');
			uni.removeStorageSync('thorui_token');
			uni.removeStorageSync('roleList');
		}
	},
	actions: {
	
	},
	getters: {
		getUserInfo(state) {
			return state.userInfo
		}
	}
})

export default store

配置main.js
import store from './store'
Vue.prototype.store = store;

const app = new Vue({
  ...App,
  store
})

线上体验地址, 重点就是登陆部分的使用了store实现
mincode.jpg

相关state和mutations使用具体见

vuex之state-状态对象的获取方法

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Uniapp 是一个跨平台的开发框架,可以使用 Vue.js 来开发多端应用。对于 Vue 3 的 storeUniapp 也提供了相应的支持。 在 Uniapp 中,可以使用 Vuex 来管理应用状态。在 Vue 3 中,Vuex 也有相应的更新来适配 Composition API。你可以按照以下步骤来创建和使用 Vuex store。 1. 首先,在项目的根目录下,创建一个 `store` 目录,用来存放 Vuex 的相关文件。 2. 在 `store` 目录内,创建一个 `index.js` 文件,用来初始化 Vuex 的 store。 3. 在 `index.js` 中,引入 Vue 和 Vuex: ```javascript import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) // 创建一个 store 实例 const store = new Vuex.Store({ state: { // 在这里定义你的状态 }, mutations: { // 在这里定义你的变更方法 }, actions: { // 在这里定义你的异步操作方法 }, getters: { // 在这里定义你的计算属性 } }) export default store ``` 4. 在你的应用主文件(一般是 `main.js` 或者 `App.vue`)中,引入并使用该 store: ```javascript import store from './store' new Vue({ store, render: h => h(App) }).$mount('#app') ``` 现在,你就可以在应用的任何组件中使用该 store管理应用状态了。你可以通过 `this.$store` 来访问 store 的属性和方法,例如: ```javascript // 读取状态 const count = this.$store.state.count // 提交变更 this.$store.commit('increment', payload) // 分发异步操作 this.$store.dispatch('fetchData') ``` 以上就是在 Uniapp 中使用 Vue 3 的 store(基于 Vuex)的基本步骤。你可以根据自己的需求,在 store 中定义状态、变更方法、异步操作方法和计算属性,来管理应用的数据和逻辑。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值