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
  }
}
相关推荐
37.2℃9952 小时前
专业的Claude Design解决方案
前端·算法
Jolyne_2 小时前
ng-zorro-table列宽resize后宽度是NaN的源码调试记录
前端
liwulin05062 小时前
【ollama】自定义结构化输出
linux·前端·数据库·ollama
前端甜糖2 小时前
记录We码开发者工具的一个bug
前端·javascript
程序员黑豆2 小时前
鸿蒙应用开发教程:以红绿灯切换为例,掌握条件渲染的核心用法
前端·harmonyos
猫3283 小时前
echarts 日常问题解决
前端·javascript·echarts
新中地GIS开发老师3 小时前
地信职业百科④:GIS开发工程师
前端·数据库·gis·webgis·三维gis开发
我是大卫3 小时前
【图】React源码解析-从数据结构、调度器、源码设计模式到状态计算引擎,深挖useReducer原理
前端·react.js·源码
willes3 小时前
列表中的倒计时组件
前端
LVZ3 小时前
用了半年 AI 写代码,最烦的不是代码,是环境
前端·后端·开源