uniapp pinia实现数据持久化插件

uniapp时间数据持久化兼容多端,话不多说直接上代码。

第一步新建一个插件index.js,内容如下:

javascript 复制代码
import { onLoad,onHide } from "@dcloudio/uni-app";

const KEYPREFIX = 'PINIA:STATE:'

export function storeStorage({store}){
	const KEY = KEYPREFIX + store.$id;
	onLoad(()=>{
		const item = uni.getStorageSync(KEY)
		if(!item) return;
		try{
			const originState = JSON.parse(item);
			store.$patch(originState)
		}catch(e){
			console.log('e',e);
			console.log('存储格式无效');
		}
	})
	onHide(()=>{
		uni.setStorageSync(KEY,JSON.stringify(store.$state))
	})
}

第二步,在main.js中引入并使用

javascript 复制代码
//路径是自己刚才所建js的文件路径
import {storeStorage} from '../plugins/storeStorage.js'
import * as Pinia from 'pinia';


import { createSSRApp } from 'vue'
export function createApp() {
  const app = createSSRApp(App)
  const pinia = Pinia.createPinia()
  pinia.use(storeStorage)
  app.use(pinia);
  return {
    app,
	Pinia
  }
}
相关推荐
李子琪。1 分钟前
Web 漏洞与防御机制实验报告
前端·经验分享
JustNow_Man5 分钟前
“失败后自动拉起修复 Agent”的闭环流水线
前端·人工智能·chrome·python
Dxy12393102168 分钟前
HTML中如何写键盘事件
前端·html·计算机外设
霍格沃兹测试学院-小舟畅学10 分钟前
接口自动化测试的下一个十年:从脚本到Skills,让AI学会“如何测”
java·前端·人工智能
huangfuyk12 分钟前
前端使用Cursor编辑器方面遇到的问题及注意细节
前端·编辑器·ai编程·cursor
2501_9159090612 分钟前
深入理解HTTPS中间人抓包技术原理与实战指南
网络协议·http·ios·小程序·https·uni-app·iphone
ZC跨境爬虫15 分钟前
跟着 MDN 学CSS day_31:(精通链接样式,从伪类到导航菜单)
前端·javascript·css·ui·交互
发现你走远了25 分钟前
前端多环境自动化部署实战:GitHub Actions + Azure Blob + Cloudflare
前端·自动化·github
香香爱编程25 分钟前
vue3自定义顶部弹窗
前端·javascript·vue.js
weelinking35 分钟前
【产品】10_搭建前端框架——把你的原型变成真实页面
java·大数据·前端·数据库·人工智能·python·前端框架