解决vuex数据页面刷新后初始化操作


Posted in Javascript onJuly 26, 2020

在vue项目的开发中经常会用到vuex来进行数据的存储,然而在开发过程中会出现刷新后页面的vuex的state数据初始化问题!下面是我用过的解决方法

1、利用storage缓存来实现vuex数据的刷新问题

我们可以在mutation等vuex的方法中对于数据进行改变时,将数据同时存储进我们的本地浏览器缓存中;下面是我在mutation中写的方法;

解决vuex数据页面刷新后初始化操作

同步将数据的更改保存,也可以在页面调用vuex的mutation方法时同步更改;但是这种方法只能针对少量的数据需要保持不刷新,在真正的卡发中并不适用

2、利用已有的插件来进行保存新状态

一致的插件中,我目前使用的是vuex-along插件,该插件使用非常方便简洁。

解决vuex数据页面刷新后初始化操作

通过 cnpm i vuex-along -D下载插件,在进行引入,在store里面通过plugin来使用,这样就能将所有的state的数据都进行保存,不回应为刷新而更改,当然如果你想仅对某些数据进行保存,也可以使用对应的插件的api来实现,具体的api请看github;

上面的代码仅为展示vuex-along插件的使用,项目的真实写法并不规范,对于一般项目会将vuex的每个模块独立拆分出来,分别进行管理

解决vuex数据页面刷新后初始化操作

同时在项目中我们也都尽量使用辅助函数来实现vuex的管理,而不会应用原生的写法

解决vuex数据页面刷新后初始化操作

对于state和getter的数据可以在计算属性中来因够用。而mutation和action则在methods方法应用;如果你需要修改计算属性,现在需要设置对应的setter。

以上纯属自己的一点意见,如果需要请采纳!

补充知识:vuex在刷新页面时保持数据不变(vuex状态持久化)

问题:

在 vue 项目中使用 vuex 来进行数据状态的管理,当刷新页面时,vuex 中 state 的数据会出现初始化问题(数据丢失)

解决方法:

1.使用 webStorage 缓存

当浏览器窗口关闭或者刷新时,会触发beforeunload事件,此时,可以使用 webStorage 缓存来实现 vuex 在刷新页面时保持数据不变

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

2.使用vuex状态持久化插件vuex-persistedstate

vuex-persistedstate插件使用浏览器的本地存储( local storage )对 vuex 的状态( state )进行持久化

安装 vuex-persistedstate:

npm install vuex-persistedstate --save-dev

在store文件夹的 index.js 中使用

//引入vuex-persistedstate
import createPersistedState from 'vuex-persistedstate'
......
export default new Vuex.Store({
 ......
 //配置vuex-persistedstate
 plugins: [createPersistedState(
  //配置将vuex的状态储存到sessionStorage中(默认储存到localStorage中)
  { storage: window.sessionStorage }
 )]
})

以上这篇解决vuex数据页面刷新后初始化操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript while语句和do while语句的区别分析
Dec 08 Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 Javascript
jQuery选择器之基本选择器与层次选择器
Mar 03 Javascript
JavaScript的jQuery库中function的存在和参数问题
Aug 13 Javascript
jQuery实现邮箱下拉列表自动补全功能
Sep 08 Javascript
js中用cssText设置css样式的简单方法
Sep 19 Javascript
js实现可旋转的立方体模型
Oct 16 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
Jan 13 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
Oct 26 Javascript
第一个Vue插件从封装到发布
Nov 22 Javascript
解决vue多个路由共用一个页面的问题
Mar 12 Javascript
深入了解Hybrid App技术的相关知识
Jul 17 Javascript
Angular利用HTTP POST下载流文件的步骤记录
Jul 26 #Javascript
vue中keep-alive、activated的探讨和使用详解
Jul 26 #Javascript
关于angular浏览器兼容性问题的解决方案
Jul 26 #Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
Jul 26 #Javascript
使用React-Router实现前端路由鉴权的示例代码
Jul 26 #Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
Jul 26 #Javascript
vue 页面回退mounted函数不执行的解决方案
Jul 26 #Javascript
You might like
Terran兵种介绍
2020/03/14 星际争霸
重量级动漫纷纷停播!唯独OVERLORD第四季正在英魂之刃继续更新
2020/05/06 日漫
一道关于php变量引用的面试题
2010/08/08 PHP
php tp验证表单与自动填充函数代码
2012/02/22 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
jQuery 使用手册(七)
2009/09/23 Javascript
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
Vue框架里使用Swiper的方法示例
2018/09/20 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
Python实现批量修改文件名实例
2015/07/08 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
详解python内置模块urllib
2020/09/09 Python
谈谈python垃圾回收机制
2020/09/27 Python
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
请解释virtual关键字的含义
2015/06/17 面试题
业务经理的岗位职责
2013/11/16 职场文书
应届生简历中的自我评价
2014/01/13 职场文书
大二自我鉴定
2014/01/31 职场文书
擅自离岗检讨书
2014/02/11 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
大一新生期末自我评价
2014/09/12 职场文书
婚礼父母答谢词
2015/01/04 职场文书