diff --git a/package.json b/package.json index 090bdd0..92163dc 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@dcloudio/uni-quickapp-webview": "3.0.0-4060620250520001", "@dcloudio/uni-ui": "^1.5.11", "pinia": "2.0.36", + "pinia-plugin-persistedstate": "^4.7.1", "vue": "^3.4.21", "vue-i18n": "^9.1.9" }, diff --git a/src/main.js b/src/main.js index 4501e2c..0a0dccb 100644 --- a/src/main.js +++ b/src/main.js @@ -1,10 +1,12 @@ import { createSSRApp } from 'vue' import { createPinia } from 'pinia' +import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' import App from './App.vue' export function createApp() { const app = createSSRApp(App) const pinia = createPinia() + pinia.use(piniaPluginPersistedstate) app.use(pinia) return { app diff --git a/src/store.js b/src/store.js index 7549772..b1ae6a0 100644 --- a/src/store.js +++ b/src/store.js @@ -154,14 +154,14 @@ export default defineStore("store", { }, }, - // 开启数据持久化 + // 数据持久化(via pinia-plugin-persistedstate) + // 仅持久化 user 和 device:身份凭证需在冷启动时恢复(如从分享链接进入) + // config、game 等运行时状态不持久化,每次联网后重新拉取 persist: { - enabled: true, - strategies: [ - { - storage: uni.getStorageSync, - paths: ["user", "device", "config"], // 只持久化用户信息 - }, - ], + storage: { + getItem: (key) => uni.getStorageSync(key), + setItem: (key, value) => uni.setStorageSync(key, value), + }, + paths: ['user', 'device'], }, }); diff --git a/yarn.lock b/yarn.lock index 155f790..d2e4afd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2565,6 +2565,11 @@ default-gateway@^6.0.3: dependencies: execa "^5.0.0" +defu@^6.1.4: + version "6.1.7" + resolved "https://registry.npmmirror.com/defu/-/defu-6.1.7.tgz#72543567c8e9f97ff13ce402b6dbe09ac5ae4d23" + integrity sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ== + depd@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" @@ -3468,6 +3473,13 @@ pify@^2.3.0: resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== +pinia-plugin-persistedstate@^4.7.1: + version "4.7.1" + resolved "https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-4.7.1.tgz#d13880e0b7efdafd1b73fca3d73cd64ae34bde84" + integrity sha512-WHOqh2esDlR3eAaknPbqXrkkj0D24h8shrDPqysgCFR6ghqP/fpFfJmMPJp0gETHsvrh9YNNg6dQfo2OEtDnIQ== + dependencies: + defu "^6.1.4" + pinia@2.0.36: version "2.0.36" resolved "https://registry.npmjs.org/pinia/-/pinia-2.0.36.tgz"