{"_id":"@deary/pinia-plugin-persist","_rev":"4-4d77333a98246de77ca147df49ed49c6","name":"@deary/pinia-plugin-persist","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@deary/pinia-plugin-persist","version":"1.0.0","_id":"@deary/pinia-plugin-persist@1.0.0","maintainers":[{"name":"deary","email":"thedanyang@vip.qq.com"}],"dist":{"shasum":"bdfce33d5806975bc64d87a2e3d77799fbda6dbe","tarball":"https://registry.npmjs.org/@deary/pinia-plugin-persist/-/pinia-plugin-persist-1.0.0.tgz","fileCount":6,"integrity":"sha512-zbwF4Vo/RqL4DgSrjKVw7KJnb2Fue+tZcihBQqKd75Tb4XJu3iqTj15iJCw7wssqOGe4a2+4u+x/+iB2nQMx8g==","signatures":[{"sig":"MEQCIAju0NQYXSU2CAGRk2tOXCvwXn122NluRJGipeD4bqkPAiBF4esFvmlukpl/VPpTfI4Yv0oZAl/kvGcJACZyXzZpCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14324},"main":"./dist/deary-pinia-persist.umd.js","types":"./dist","module":"./dist/deary-pinia-persist.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/deary-pinia-persist.es.js","require":"./dist/deary-pinia-persist.umd.js"}},"gitHead":"e75b02217db651fadafcd60341a0fe94ecdf8b02","scripts":{"p":"git add . && git commit -m 'update' && git push","v":"npm version patch && git push && git push origin --tags","docs":"vitepress dev docs","lint":"eslint . --ext .ts","build":"vite build && tsc","docs:build":"vitepress build docs"},"_npmUser":{"name":"deary","email":"thedanyang@vip.qq.com"},"repository":{"url":"https://gitee.com/aiyvyang/deary-pinia-plugin-persist.git","type":"git"},"_npmVersion":"11.4.0","description":"[![NPM version](https://img.shields.io/npm/v/@deary/pinia-plugin-persist?color=a1b858&label=)](https://www.npmjs.com/package/@deary/pinia-plugin-persist)\r [![NPM downloads](https://img.shields.io/npm/dm/@deary/pinia-plugin-persist.svg?style=flat)](https:/","directories":{},"_nodeVersion":"22.15.1","dependencies":{"vue-demi":"^0.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.2.31","vite":"^2.8.0","pinia":"^2.0.0","eslint":"^8.10.0","prettier":"^2.5.1","vitepress":"^0.22.3","typescript":"^4.5.4","@types/node":"^17.0.25","@babel/types":"^7.17.0","@dcloudio/types":"^3.4.3","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.14.0","@typescript-eslint/eslint-plugin":"^5.14.0"},"peerDependencies":{"vue":"^2.0.0 || >=3.0.0","pinia":"^2.0.0","@deary/utils":"^2.2.25","@vue/composition-api":"^1.0.0"},"peerDependenciesMeta":{"@vue/composition-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pinia-plugin-persist_1.0.0_1748420987181_0.08137733724388774","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@deary/pinia-plugin-persist","version":"1.0.1","_id":"@deary/pinia-plugin-persist@1.0.1","maintainers":[{"name":"deary","email":"thedanyang@vip.qq.com"}],"dist":{"shasum":"034e88ebbd2f306db469c80cfa8d36fe3129f4d1","tarball":"https://registry.npmjs.org/@deary/pinia-plugin-persist/-/pinia-plugin-persist-1.0.1.tgz","fileCount":6,"integrity":"sha512-WODAzaAHyPMgSlSxAaN0xMOhf3P+g7bvR4FhW1mLTzS6y5v4tJnJi/TYuiVkPuJVhLWPVkRV6AOC7ngDU/ruUA==","signatures":[{"sig":"MEQCIBo9Mi7zZQpTJnIL3FWEeyU/L/8NJPDdjPvzs1QCaav/AiAsftl7wkgwpsZeYmWReoiyzIZ9callg5p8lFPoy3rI/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14720},"main":"./dist/deary-pinia-persist.umd.js","types":"./dist","module":"./dist/deary-pinia-persist.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/deary-pinia-persist.es.js","require":"./dist/deary-pinia-persist.umd.js"}},"gitHead":"e75b02217db651fadafcd60341a0fe94ecdf8b02","scripts":{"p":"git add . && git commit -m 'update' && git push","v":"npm version patch && git push && git push origin --tags","docs":"vitepress dev docs","lint":"eslint . --ext .ts","build":"vite build && tsc","docs:build":"vitepress build docs"},"_npmUser":{"name":"deary","email":"thedanyang@vip.qq.com"},"repository":{"url":"https://gitee.com/aiyvyang/deary-pinia-plugin-persist.git","type":"git"},"_npmVersion":"11.4.0","description":"[![NPM version](https://img.shields.io/npm/v/@deary/pinia-plugin-persist?color=a1b858&label=)](https://www.npmjs.com/package/@deary/pinia-plugin-persist)\r [![NPM downloads](https://img.shields.io/npm/dm/@deary/pinia-plugin-persist.svg?style=flat)](https:/","directories":{},"_nodeVersion":"22.15.1","dependencies":{"vue-demi":"^0.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.2.31","vite":"^2.8.0","pinia":"^2.0.0","eslint":"^8.10.0","prettier":"^2.5.1","vitepress":"^0.22.3","typescript":"^4.5.4","@types/node":"^17.0.25","@babel/types":"^7.17.0","@dcloudio/types":"^3.4.3","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.14.0","@typescript-eslint/eslint-plugin":"^5.14.0"},"peerDependencies":{"vue":"^2.0.0 || >=3.0.0","pinia":"^2.0.0","@deary/utils":"^2.2.25","@vue/composition-api":"^1.0.0"},"peerDependenciesMeta":{"@vue/composition-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pinia-plugin-persist_1.0.1_1748423321321_0.9613378625825093","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-05-28T08:29:47.115Z","modified":"2026-09-11T08:28:42.327Z","1.0.0":"2025-05-28T08:29:47.359Z","1.0.1":"2025-05-28T09:08:41.484Z"},"repository":{"url":"https://gitee.com/aiyvyang/deary-pinia-plugin-persist.git","type":"git"},"description":"[![NPM version](https://img.shields.io/npm/v/@deary/pinia-plugin-persist?color=a1b858&label=)](https://www.npmjs.com/package/@deary/pinia-plugin-persist)\r [![NPM downloads](https://img.shields.io/npm/dm/@deary/pinia-plugin-persist.svg?style=flat)](https:/","maintainers":[{"email":"thedanyang@qq.com","name":"aiyuyang"}],"readme":"#  @deary/pinia-plugin-persist\r\n\r\n[![NPM version](https://img.shields.io/npm/v/@deary/pinia-plugin-persist?color=a1b858&label=)](https://www.npmjs.com/package/@deary/pinia-plugin-persist)\r\n[![NPM downloads](https://img.shields.io/npm/dm/@deary/pinia-plugin-persist.svg?style=flat)](https://npmjs.com/package/@deary/pinia-plugin-persist)\r\n\r\n# 前言\r\n\r\n> pinia 作为新一代的状态管理器，更友好的 ts 支持，更轻量的打包体积，更简化的模块管理，无疑会在将来的市场中备受欢迎。\r\n\r\npinia 的优点相比也不用多说了，但也正是由于其处于一个新生的阶段，周边生态还不够完善，在本人搭建项目的过程中便遇到了 pinia 在 uniapp 中数据持久化有效期的问题。\r\n\r\n市场上目前也有一些数据持久化的插件，例如 `vuex-persistedstate`，`pinia-plugin-persist`，`pinia-plugin-persist-uni`，是服务于 pinia 和 uniapp 的没有有效期的功能，于是便有了`@deary/pinia-plugin-persist`。相比于`pinia-plugin-persist-uni`增加持久化数据有效期的功能。\r\n\r\n# 使用说明\r\n\r\n## 安装\r\n\r\n`npm i @deary/pinia-plugin-persist`\r\n\r\n## 配置\r\n\r\n### Vue2\r\n\r\n```typescript\r\nimport Vue from 'vue'\r\nimport vueCompositionApi from '@vue/composition-api'\r\nimport { createPinia } from 'pinia'\r\nimport piniaPersist from '@deary/pinia-plugin-persist'\r\nimport App from './App.vue'\r\n\r\nconst pinia = createPinia()\r\npinia.use(piniaPersist)\r\n\r\nVue.use(vueCompositionApi)\r\nVue.use(pinia)\r\n\r\nnew Vue({\r\n  pinia,\r\n  render: (h) => h(App),\r\n}).$mount('#app')\r\n```\r\n\r\n### Vue3\r\n\r\n```typescript\r\nimport { createApp } from 'vue'\r\nimport { createPinia } from 'pinia'\r\nimport piniaPersist from '@deary/pinia-plugin-persist'\r\n\r\nconst pinia = createPinia()\r\npinia.use(piniaPersist)\r\n\r\ncreateApp({}).use(pinia).mount('#app')\r\n```\r\n\r\n### Typescript\r\n\r\n```json\r\n// tsconfig.json\r\n{\r\n  \"compilerOptions\": {\r\n    \"types\": [\"@deary/pinia-plugin-persist\"]\r\n  }\r\n}\r\n```\r\n\r\n## 基本用法\r\n\r\n通过在你的 stroe 中配置 persist, 将会通过 uniAppStorage 来持久化存储你的数据.\r\n\r\n请配置 id，用于持久化存储时的 key。\r\n\r\n```typescript\r\n// store/user.ts\r\nimport { defineStore } from 'pinia'\r\n\r\nexport const useUserStore = defineStore('storeUser', {\r\n  state: () => {\r\n    id: 'user',\r\n    return {\r\n      firstName: 'ayy',\r\n      lastName: 'ttk',\r\n      accessToken: 'xxxxxxxxxxxxx',\r\n    }\r\n  },\r\n  actions: {\r\n    setToken(value: string) {\r\n      this.accessToken = value\r\n    },\r\n  },\r\n  persist: {\r\n    enabled: true,\r\n    // 开启 expire 后，仅支持内置存储\r\n    // expire: 60 * 60 * 1000 // 1小时有效期\r\n  },\r\n})\r\n```\r\n\r\n## 总结\r\n\r\n新技术会带给我们更良好的开发体验，但是我们同样应该关注其社区环境，并力所能及的贡献出自己的一份力量。本插件开发的新路历程也是基于目前`pinia`的生态环境中没有专门服务于`uniapp`的`数据持久化`插件。\r\n\r\n该项目也是参考了`vuex-persistedstate`，`pinia-plugin-persist`和`pinia-plugin-persist-uni`,保持了使用习惯的同时又简化了使用配置。同时在搭建项目的过程中也接触到了`github-pages`以及`github actions`的配置使用，实现了说明文档自动部署和 npm 自动发包，可谓是收获满满。\r\n\r\n## 相关内容\r\n\r\n- [CSDN博客](https://deary.blog.csdn.net)\r\n- [说明文档](https://aiyvyang.github.io/deary-pinia-plugin-persist/)\r\n\r\n对你有帮助或者喜欢的话请点个 Star。\r\n\r\n## 参考\r\n\r\n- [vuex-persistedstate](https://github.com/robinvdvleuten/vuex-persistedstate)\r\n- [pinia-plugin-persist](https://github.com/Seb-L/pinia-plugin-persist)\r\n","readmeFilename":"README.md"}