解决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+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
Aug 04 Javascript
jQuery入门基础知识学习指南
Aug 14 Javascript
JavaScript的Vue.js库入门学习教程
May 23 Javascript
json格式的javascript对象用法分析
Jul 04 Javascript
jquery实现百叶窗效果
Jan 12 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
Feb 09 Javascript
微信小程序云开发实现数据添加、查询和分页
May 17 Javascript
JS模拟浏览器实现全局搜索功能
Sep 11 Javascript
浅谈TypeScript的类型保护机制
Feb 23 Javascript
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
Apr 07 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
Apr 23 Javascript
浅谈JS for循环中使用break和continue的区别
Jul 21 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
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
php实现微信公众号无限群发
2015/10/11 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
jquery.pagination.js分页使用教程
2018/10/23 jQuery
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
Python操作Excel之xlsx文件
2017/03/24 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
python实现简单登陆流程的方法
2018/04/22 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
pandas.cut具体使用总结
2019/06/24 Python
Python中求对数方法总结
2020/03/10 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
利用python 读写csv文件
2020/09/10 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
手残删除python之后的补救方法
2021/06/26 Python
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android
SQL Server中锁的用法
2022/05/20 SQL Server
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers