vuex【解决方案】刷新页面数据丢失(两种方法)—— 含 vuex-along 教程

简介: vuex【解决方案】刷新页面数据丢失(两种方法)—— 含 vuex-along 教程

问题描述

存入vuex中的数据,在用户刷新页面后会丢失

原因解析

js代码运行时所有变量、函数都保存在内存中。刷新页面后,以前申请的内存被释放,脚本代码重新加载,变量会重新赋值。

解决方案一 sessionStorage

src\App.vue 中添加代码

  created() {
    //在页面加载时读取sessionStorage里的状态信息
    if (sessionStorage.getItem("store")) {
      this.$store.replaceState(
        Object.assign(
          {},
          this.$store.state,
          JSON.parse(sessionStorage.getItem("store"))
        )
      );
    }
    //在页面刷新时将vuex里的信息保存到sessionStorage里
    window.addEventListener("beforeunload", () => {
      sessionStorage.setItem("store", JSON.stringify(this.$store.state));
    });
  },

解决方案二 vuex-along

原理也是使用了本地存储,官网教程 https://github.com/boenfu/vuex-along/blob/master/README.md

npm install vuex-along --save

src\store\index.js 中添加

import createVuexAlong from "vuex-along"; //vuex-along

plugins: [createVuexAlong()], //vuex-along

最终效果如下:

import createVuexAlong from "vuex-along"; //vuex-along
 
const store = new Vuex.Store({
  plugins: [createVuexAlong()], //vuex-along
  state,
  getters,
  mutations,
  actions,
});
export default store;


目录
相关文章
|
5月前
|
JavaScript
vue数据更新了但是页面不更新的解决方案
vue数据更新了但是页面不更新的解决方案
87 0
|
JavaScript API
浅尝Vue最新状态管理工具Pinia(实战使用Pinia管理登录状态)
pinia是vue新的状态管理工具,也称作vuex5,本文讲解Pinia的使用方法
968 0
浅尝Vue最新状态管理工具Pinia(实战使用Pinia管理登录状态)
|
2月前
|
存储 缓存 JavaScript
当Vue.observable()遇上Vuex:选择最佳状态管理方案的指南
【8月更文挑战第27天】在构建大型Vue应用程序时,合理管理组件间共享状态至关重要。本文深入探讨了Vuex和Vue.observable()两种状态管理工具的特点。Vue.observable()以其简洁的API适用于小型至中型项目,而Vuex遵循严格的Flux架构,专为复杂的大中型应用设计,确保状态变化的可预测性和高效性。通过示例代码比较两者实现方式,展示了尽管Vuex操作更为复杂,却能带来更好的可维护性和扩展性。最终,开发者可根据项目的具体需求和规模来选择最适合的状态管理方案。
36 0
|
3月前
|
存储 缓存 JavaScript
【vue2】解决Vuex刷新页面数据丢失的问题
【vue2】解决Vuex刷新页面数据丢失的问题
337 6
|
4月前
|
存储 JavaScript API
Vue状态管理深度剖析:Vuex vs Pinia —— 从原理到实践的全面对比
Vue状态管理深度剖析:Vuex vs Pinia —— 从原理到实践的全面对比
162 2
|
5月前
|
存储 JavaScript
Vue的状态管理:Vuex的使用和最佳实践
【4月更文挑战第24天】Vue状态管理库Vuex用于集中管理组件状态,包括State(全局状态)、Getters(计算属性)、Mutations(同步状态变更)和Actions(异步操作)。Vuex还支持Modules,用于拆分大型状态树。使用Vuex时,需安装并创建Store,定义状态、getter、mutation和action,然后在Vue实例中注入Store。遵循最佳实践,如保持状态树简洁、使用常量定义Mutation类型、避免直接修改状态、在Actions中处理异步操作、合理划分Modules,以及利用Vuex提供的插件和工具,能提升Vue应用的稳定性和可维护性。
|
5月前
|
存储 JavaScript 前端开发
一起学习Vuex 4.0的状态管理(Vite)
一起学习Vuex 4.0的状态管理(Vite)
81 0
|
存储 缓存 JavaScript
vue数据刷新丢失如何解决?
vue数据刷新丢失如何解决?
|
缓存 JavaScript
Vue Vuex 更新页面 Store 数据丢失
Vue Vuex 更新页面 Store 数据丢失
112 0
|
JavaScript
vue系列教程之微商城项目|vuex全局状态管理-加入购物车
vue系列教程之微商城项目|vuex全局状态管理-加入购物车
215 0