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
}
}