解决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 相关文章推荐
原型方法的不同写法居然会影响调试的解决方法
Mar 08 Javascript
jquery 操作DOM的基本用法分享
Apr 05 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
Aug 02 Javascript
jQuery 取值、赋值的基本方法整理
Mar 31 Javascript
jQuery插件Validate实现自定义表单验证
Jan 18 Javascript
JQuery+EasyUI轻松实现步骤条效果
Feb 22 Javascript
全面理解闭包机制
Jul 11 Javascript
微信小程序 数据访问实例详解
Oct 08 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
Jan 19 Javascript
Javascript中字符串相关常用的使用方法总结
Mar 13 Javascript
3种vue组件的书写形式
Nov 29 Javascript
Vue组件化开发思考
Feb 02 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
PHP编程之高级技巧——利用Mysql函数
2006/10/09 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
Python中文件操作简明介绍
2015/04/13 Python
python利用datetime模块计算时间差
2015/08/04 Python
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
python装饰器练习题及答案
2019/11/01 Python
详解python中docx库的安装过程
2019/11/08 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
PyTorch的torch.cat用法
2020/06/28 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
竞争上岗实施方案
2014/03/21 职场文书
纪检监察建议书
2014/05/19 职场文书
护士个人年终总结
2015/02/13 职场文书
解约证明模板
2015/06/19 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书