博客摘录<==Pinia及数据持久化存储详细教程==>2024年1月23日

下载安装

pnpm install  pinia-plugin-persistedstate
import { createPinia }  from "pinia";
import persist from 'pinia-plugin-persistedstate'
const store = createPinia();
store.use(persist)
export default store;

添加一下代码

import {  defineStore }  from "pinia";
import {dataLeftList,userInfoList} from "@/api/data/dataone"
const userStore = defineStore("userStore",{
      state:()=>{
           return{
            //    用户登录信息保存
               userInfo:{
                   username:"",
                   password:"",
                   avatar:"",
                   roles:[],
               },
               dataLeftListPinia:dataLeftList,
               userInfoListPinia :userInfoList
           }
      },
      persist:true  //代码重点在这里
})
export default userStore;

Pinia是Vue.js 3.x官方推荐的状态管理库,主要用于组织和管理应用中的可复用状态。它本身不直接支持数据持久化,包括本地存储(localStorage, sessionStorage)或 IndexedDB。但是,你可以结合Pinia使用一些第三方库或者Vue的内置API来实现数据的本地存储。 如果你想在Pinia中实现数据持久化,你可以这样做: 1. 使用Vue的` localStorage.getItem` 和 `localStorage.setItem` API: 当组件卸载时,你可以将Pinia store的状态同步到本地存储,加载时再从存储中读取恢复状态。 ```javascript // store.js import { reactive } from 'vue' export const useStore = defineStore('myStore', { state() { return reactive({ myData: localStorage.getItem('myData') || {} }) }, mutations: { saveData(state) { localStorage.setItem('myData', state.myData) }, }, actions: { async loadOrSaveData() { const data = await someAsyncFunction() // 获取或计算数据 this.myData = data this.saveData() }, }, }) ``` 2. 第三方库:如Vuex-persistedstate,这是一个用于Vuex状态持久化的插件,可以方便地与Pinia集成。 ```javascript import createPersistedState from 'vuex-persistedstate' // ... storeEnhancers: [createPersistedState()] ``` 3. 如果你需要更复杂的数据存储(如键值对、对象或数组),可以考虑使用IndexedDB或适配其API的库,比如vue-localstorage-indexeddb。 重要的是,确保在处理数据存储时考虑到用户隐私和数据版本控制,特别是在生产环境中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值