Vue2中pinia刷新后数据丢失的问题解决

 更新时间:2023年12月11日 11:37:40   作者:卡卡卡卡罗特  
Pinia是一个Vue.js状态管理库,如果你在组件中修改了store中的数据并刷新了界面,Pinia会将store中的数据重置为初始值,从而导致数据丢失的问题,本文就来介绍一下问题解决,感兴趣的可以了解一下

Pinia:官网

Pinia 是一个 Vue.js 状态管理库,如果你在组件中修改了 store 中的数据并刷新了界面,Pinia 会将 store 中的数据重置为初始值,从而导致数据丢失的问题。

这里给出vue2的解决方案:

可以使用 Pinia 的 Persist 插件,该插件可以将 Pinia 的 store 数据持久化到本地存储中,这样当你刷新页面时,store 中的数据不会丢失。可以参考文档:文档

安装Persist ,选择你喜欢的包管理器

# yarn
yarn add pinia-plugin-persist
# npm
npm install pinia-plugin-persist

main.js文件

import { createPinia, PiniaVuePlugin } from 'pinia' //vue2需要引入PiniaVuePlugin 
import piniaPluginPersist from 'pinia-plugin-persist'//引入pinia数据持久化插件

Vue.use(PiniaVuePlugin)
const pinia = createPinia()//创建pinia的实例
pinia.use(piniaPluginPersist);

new Vue({
  router,
  render: h => h(App),
  pinia,
}).$mount('#app')

 articeId.js,这里我是保存文章Id,所以是这个文件,根据官方文档,在src/stores下创建该文件

import { defineStore } from 'pinia'

// 你可以对 `defineStore()` 的返回值进行任意命名,但最好使用 store 的名字,同时以 `use` 开头且以 `Store` 结尾。(比如 `useUserStore`,`useCartStore`,`useProductStore`)
// 第一个参数是你的应用中 Store 的唯一 ID。
export const useArticleIdsStore = defineStore('articleId', {
  // 其他配置...
  persist: {
    enabled: true,//开启数据持久化
    strategies: [
      {
        key: 'articleId',//给一个要保存的名称
        storage: localStorage,// localStorage 存储方式为本地存储
      }
    ]
  },
  state:()=>{
    //需要保存的数据,初始值为0
    return {articleId:0}
  },
  actions:{

  }
})

使用样例:

import { useArticleIdsStore } from '@/stores/articleId'
const articleIdsStore = useArticleIdsStore();
    methods: {
        getArticle() {
            //获取存储的articleId值
             const articleId = articleIdsStore.articleId;
            //其他操作...
        }, 
    },

到此这篇关于Vue2中pinia刷新后数据丢失的问题解决的文章就介绍到这了,更多相关Vue2 pinia刷新后数据丢失内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vuejs对接后端踩过的坑记录

    vuejs对接后端踩过的坑记录

    这篇文章主要介绍了vuejs对接后端踩过的坑记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Vue引入ElementUI并使用的详细过程

    Vue引入ElementUI并使用的详细过程

    Element UI是一个基于Vue 2.0的桌面端组件库,旨在构建简洁、快速的用户界面,这篇文章主要介绍了Vue如何引入ElementUI并使用,需要的朋友可以参考下
    2024-06-06
  • vue echarts移动端踩坑解决记录

    vue echarts移动端踩坑解决记录

    这篇文章主要为大家介绍了vue echarts移动端踩坑解决记录,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Vue3渲染器与编译器深入浅析

    Vue3渲染器与编译器深入浅析

    这篇文章主要为大家介绍了Vue3渲染器与编译器深入浅析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 详解auto-vue-file:一个自动创建vue组件的包

    详解auto-vue-file:一个自动创建vue组件的包

    这篇文章主要介绍了auto-vue-file:一个自动创建vue组件的包,需要的朋友可以参考下
    2019-04-04
  • vue+element table表格实现动态列筛选的示例代码

    vue+element table表格实现动态列筛选的示例代码

    这篇文章主要介绍了vue+element table表格实现动态列筛选的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • vue3 tailwindcss的使用教程

    vue3 tailwindcss的使用教程

    Tailwind是由Adam Wathan领导的TailwindLabs开发的 CSS 框架,这篇文章主要介绍了vue3 tailwindcss的使用,需要的朋友可以参考下
    2023-08-08
  • Vue双向绑定原理及实现方法

    Vue双向绑定原理及实现方法

    Vue双向绑定是指数据模型和视图之间的数据同步,通过Object.defineProperty()方法实现数据劫持,利用观察者模式实现数据更新和视图更新的自动同步,实现方式包括指令、计算属性、v-model等,优化方法包括使用虚拟DOM、合理使用computed和watch等
    2023-04-04
  • vue3实现国际化的过程与遇到的问题详解

    vue3实现国际化的过程与遇到的问题详解

    像很多大型的网址,特别是跨国际等公司网页,访问来自世界各地用户,所以网页的国际化极其重要的需求,这篇文章主要给大家介绍了关于vue3实现国际化的过程与遇到的问题的相关资料,需要的朋友可以参考下
    2022-05-05
  • 带你熟练掌握Vue3之Pinia状态管理

    带你熟练掌握Vue3之Pinia状态管理

    pinia是vue3官方的状态管理工具,当然vue2也可以用,vue2中的状态管理工具是vuex,vue3中不再使用vuex,推荐使用的是pinia,和vuex差不多,但比vuex更方便、更强、更好,下面这篇文章主要给大家介绍了关于Vue3之Pinia状态管理的相关资料,需要的朋友可以参考下
    2022-11-11

最新评论