首页 > 其他分享 >【pinia-plugin-persistedstate】Vue3 pinia 数据持久化插件 pinia-plugin-persistedstate 使用

【pinia-plugin-persistedstate】Vue3 pinia 数据持久化插件 pinia-plugin-persistedstate 使用

时间:2023-02-08 15:45:00浏览次数:57  
标签:插件 浏览器 plugin pinia persistedstate 持久

为什么需要持久化?

刷新浏览器后,重新加载页面时会重新初始化 vue、 pinia,而 pinia 中状态的值仅在内存中存在,而刷新导致浏览器存储中的数据就没了。

在实际开发中,浏览器刷新时,有些数据希望是保存下来的。如用户登录后,用户信息会存储在全局状态中,如果不持久化状态,那么每次刷新用户都需要重新登录了。

要解决这个问题非常简单,在状态改变时将其同步到浏览器的存储中,如 cookie、localStorage、sessionStorage 。每次初始化状态时从存储中去获取初始值即可。

说起来思路很简单,可真正实现起来就各种问题了,所以咱们就使用 pinia 的插件 pinia-plugin-persistedstate 来实现。

pinia-plugin-persistedstate

插件官方文档

  1. 安装依赖
npm install pinia-plugin-persistedstate
yarn add pinia-plugin-persistedstate
pnpm add pinia-plugin-persistedstate
  1. 引入该插件,在创建 pinia 实例时传入该插件
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'

const pinia = createPinia()
pinia.use(piniaPluginPersistedstate)

export default pinia
  1. 在需要持久化状态的模块(modules)中设置 persist
...
const useUserStore = defineStore('user', () => {
	...
}, {
   key: 'user', // Key 用于引用 storage 中的数据
   storage: sessionStorage // 将数据持久化到的 storage 中
   // 更多配置请参考官方文档
})

参考链接

Pinia 数据持久化储存(pinia-plugin-persistedstate)
Vue3 Vite3 状态管理 pinia 基本使用、持久化、在路由守卫中的使用

标签:插件,浏览器,plugin,pinia,persistedstate,持久
From: https://www.cnblogs.com/cqkjxxxx/p/17101929.html

相关文章

  • 2023-02-08 Unrecognized Android Studio (or Android Support plugin for IntelliJ I
    问题描述:Androidstudio初始化android项目,报错:UnrecognizedAndroidStudio(orAndroidSupportpluginforIntelliJIDEA)version'202.7660.26.42.7486908',please......
  • MySQL 8.0 新特性之 Clone Plugin
    转载:ClonePlugin......
  • vue3中使用pinia
    包管理器安装yarnaddpinia#或者使用npmnpminstallpinia在目录下创建store文件夹,并创建index.js文件import{createPinia}from'pinia'constpinia=cre......
  • ROS设置plugin插件
    为什么要设置plugin插件因为很多时候我们需要对产品进行包装。核心的代码是只留下输入输出接口的,所以我们使用plugin来实现.so文件的封装以及动态调取。在ROS的开发中,常常会......
  • 快速上手vue前端存储库、全局状态管理工具pinia
    pinia是什么,为什么我们要使用pinia?pinia是vue全局状态管理工具,类似vueX,用于全局的数据状态存储、修改变更等等相较于vueX,pinia的使用较为简单,轻量级,上手容易,干掉了vue......
  • Pinia
    Pinia 最初是在2019年11月左右重新设计使用 CompositionAPI 。从那时起,最初的原则仍然相同,但Pinia对Vue2和Vue3都有效,并且不需要您使用组合API。除了安......
  • vue-plugin-hiprint
    vue-plugin-hiprint(基于hiprint2.5.4)当时只是为了方便我(并非hiprint原作者)在vue项目中引入使用,所以以此命名。此插件仅仅是一个JavaScript【工具库】而非Vue【组件库......
  • pluginManagement插件管理
    Maven中提供了dependencyManagement来解决继承的问题,同样也提供了解决插件继承问题的pluginManagement元素,在父pom中可以在这个元素中声明插件的配置信息,但是子pom.xml中不......
  • plugin caching_sha2_password could not be loaded
    参考连接:https://blog.csdn.net/qq_54202620/article/details/122729704https://blog.csdn.net/qq_45214414/article/details/115284609 navicate可以连接,但是SQLyog不......
  • vue3+vite npm run build报错TypeError: (0 , import_vite_plugin_svg_icons.createSv
    报错内容如下:failedtoloadconfigfrom/home/app/git_repos/customer-visit-front/vite.config.jserrorduringbuild:TypeError:(0,import_vite_plugin_svg_icons......