uniapp 使用 全局状态 持久化工具 pinia-plugin-unistorage

一 、为什么使用到了pinia-plugin-unistorage

        我在用uniapp开发Android 移动端时,有功能是修改用户昵称和用户头像,这样就涉及到“我的界面”和“分享界面” 两处需要都更新用户昵称或头像。

        但如果使用 uni.setStorageSync 它虽然可以缓存,但无法响应式更新,所以我就找到了状态管理工具,以前vue项目使用的状态管理工具是vuex,我在uniapp官网找到了pinia这个对应vue3的状态管理工具。

        找到pinia后,还需要将状态管理的数据持久化在本地,所以我才找到了

        pinia-plugin-unistorage 他的官网地址

二、具体代码

第一个是userStrore,用户信息的全局状态管理

// stores/user.js
import { defineStore } from 'pinia';

export const userStore = defineStore('userStoreTemp', {
	state(){
		return { 
			user: {},
			token: {},
		};
	},
	unistorage: true, // 开启后对 state 的数据读写都将持久化
	actions: {
		setUserInfo(user){
			this.user = user;
		},
		updateUserName(userName){ //更新用户昵称
			this.user.userName = userName;
		},
		updateUserAvator(avator){ //更新用户头像
			this.user.portrait = avator;
		}
	},
});

如何使用userStore 用户全局状态管理

import {userStore} from '@/stores/user.js'
const userStoreTemp = userStore();
//将从后台获取的用户,存储在状态管理中
userStoreTemp.setUserInfo(result.data.user);

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tengyuxin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值