位置: IT常识 - 正文

Vue3 + Pinia 持久化存储

编辑:rootadmin
Vue3 + Pinia 持久化存储 文章目录1 前言2 持久化存储2.1 安装依赖2.2 新增 store 文件2.3 修改 main.ts 文件2.4 持久化存储测试3 高级配置3.1 存储所有变量3.2 存储部分变量1 前言本文使用 Pinia 及插件 pinia-plugin-persist 做持久化存储,避免修改 store 后还需要手动修改 storage本文弃用插件 pinia-plugin-persistedstate,该插件无法配置一个 store 中的变量分别存储于 localStorage 和 sessionStorage2 持久化存储2.1 安装依赖pnpm i pinia // 安装 piniapnpm i pinia-plugin-persist // 安装持久化存储插件2.2 新增 store 文件新增 store 文件夹store 文件夹下新增 index.ts 文件import type { App } from 'vue'import { createPinia } from 'pinia'import piniaPluginPersist from 'pinia-plugin-persist'const store = createPinia()store.use(piniaPluginPersist)export function setupStore(app: App<Element>) { app.use(store)}export { store }2.3 修改 main.ts 文件import { createApp } from 'vue'import App from './App.vue'import { setupStore } from './store'import router from './router/routes'const app = createApp(App)setupStore(app)app.use(router).mount('#app')2.4 持久化存储测试store 文件夹下新增 modules 文件夹modules 文件夹下新增 user.ts 文件import { defineStore } from 'pinia'const userStore = defineStore('user', { state: () => { return { accessToken: '', userName: '' } }, actions: { SET_ACCESS_TOKEN(token: string) { this.accessToken = token }, SET_USER_NAME(name: string) { this.userName = name } }, persist: { enabled: true, }})export default userStore

推荐整理分享Vue3 + Pinia 持久化存储,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

若不生效,需检查全局是否注册多个 Pinia (全局搜索createPinia)

比如 main.ts 文件重新注册了 Pinia

import { createApp } from 'vue'import App from './App.vue'import { createPinia } from 'pinia'import router from './router/routes'const pinia = createPinia()const app = createApp(App)app.use(pinia)app.use(router).mount('#app')3 高级配置3.1 存储所有变量Vue3 + Pinia 持久化存储

默认存储到 sessionStorage ,key 为 store 的 id

persist: { enabled: true}

存储到 localStorage ,key 为 store 的 id

persist: { enabled: true, strategies: [ { storage: localStorage, }, ]}

自定义存储 key 值

persist: { enabled: true, strategies: [ { key: 'piniaStore', storage: localStorage, }, ]}3.2 存储部分变量

默认存储到 sessionStorage

persist: { enabled: true, strategies: [ { paths: ['accessToken'] }, ]}

自定义存储到 localStorage

persist: { enabled: true, strategies: [ { storage: localStorage, paths: ['accessToken'] }, ]}

自定义存储到 sessionStorage 和 localStorage

persist: { enabled: true, strategies: [ { storage: sessionStorage, paths: ['userName'] }, { storage: localStorage, paths: ['accessToken'] } ]}
本文链接地址:https://www.jiuchutong.com/zhishi/295941.html 转载请保留说明!

上一篇:iframe框架一个页面中嵌套到另外一个页面(如何进行iframe框架切换)

下一篇:通过云服务器租用GPU进行基于YOLOV5的人体检测模型训练(通过云服务器租号安全吗)

  • vivox70pro怎么投屏(vivox70怎么投屏)

  • oppo手机删除的视频如何恢复(oppo手机删除的照片怎样恢复到手机上)

  • 华为手机小艺建议怎么删除(华为手机小艺建议有什么用)

  • office2019不激活有影响吗(Office2019不激活能用吗)

  • 笔记本一点图标就删除(笔记本一点图标就显示移动回收站)

  • 数据透视表在哪里(数据透视表在哪儿找)

  • xr无面容有什么影响(无面容xr为什么这么便宜)

  • 把一个人拉黑删除还能加回来吗(把一个人拉黑删除对方还能加回来吗)

  • 打印机没墨了怎么办(打印机没墨了怎么清零)

  • 无线连接中文乱码(中文无线网络名连不上)

  • 手机卡销户是什么意思(手机卡销户什么时候办理)

  • 苹果8有多长(苹果8有多长有几厘米)

  • 光纤猫24小时开着要多少电(光猫多长时间开关一次比较好)

  • rioal00是华为什么型号(华为rioal00是什么型号多少钱)

  • vivo手机怎么固定屏幕(vivo手机怎么设置桌面壁纸)

  • 为什么我的qq没有限时聊天(为什么我的qq没有qq邮箱)

  • excei表格中如何换行(excei表格如何换行)

  • 小米手环4充电几个小时(小米手环4充电器可以充5吗)

  • 如何解决微信发图慢(如何解决微信发视频压缩问题)

  • 全网通和移动版啥区别(iphone全网通和移动版)

  • 淘宝收货地址写错了怎么办(淘宝收货地址写错了怎么改,已发货)

  • 拼多多聊天怎么发视频(拼多多聊天怎么拉黑对方)

  • linux如何关闭防火墙(linux关闭防护墙)

  • 新版Edge浏览器如何调整标签页指定睡眠时间(新版edge浏览器文字不显示)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络