解决VUEX刷新的时候出现数据消失


Posted in Javascript onJuly 03, 2017

通常,我们在使用vue编写页面时,会需要使用vuex在组件间传递(或者说共同响应)同一个数据的变化。例如:用户的登录信息。

下面,我们使用传递用户登录信息的例子来一步步解决这个问题。

首先,我们的第一个问题是:我在一个组件(例如登录组件页面)中登录了后,其它页面要怎么获取和响应这个变化?(就是这么小白,/(ㄒoㄒ)/~~)

这个答案就是使用vuex啦,在中文版的文档中有这样一句话:

解决VUEX刷新的时候出现数据消失

而这里的计算属性就是我们的伟大的computed属性啦~

(至于前面的通过mutation之类的把数据存入vuex中的过程就省略了,大家上网搜一下例子一大堆,切忌做伸手党哦~)

至于用在我们的用户登录的例子中就像是下面这样:

解决VUEX刷新的时候出现数据消失

这样我们就可以在页面根据用户信息响应式地显示内容了。

那么,我们的第二个问题来了:我是获取到了vuex中的用户信息,但是我一刷新就没有了!!怎么办??在线等!十万火急!!

这个答案就是使用localStorage啦。(了解过html 5的同学应该都知道它,这里我就不科普了。)

一开始我虽然知道可以用localStorage,但是对于使用的逻辑有点乱,所以在这里记一下。

1、在vuex获取到用户信息时(例:state.user_id = user_info.user_id),同时把这个信息存入localStorage(Lockr.set('user_id', state.user_id) 这个Lockr是我用了一个叫Lockr的东西,其实它就是localStorage而已,关于它详细的请看https://github.com/tsironis/lockr);

2、我们定义一个mutation方法,再次把数据从localStorage传给state;

3、我们的问题发生在页面刷新时,可能很多同学就会去想在监听页面刷新事件时触发上面第2步的那个方法。其实不用这么麻烦,在computed属性时,只要我们判断一下用户信息是否为空,为空时调用第2步的那个方法就好了,然后我们把这个state return给那个响应属性就好了;

4、至于为什么这么麻烦在state和localStorage中传来传去,是因为state的值刷新后会没了,而localStorage的值不能响应式地变化(Vue 仅可以对其管理的数据做响应式处理,可以理解为 data 中的数据,localStorage 并不在 Vue 的管理下,自然不会有响应特性);

下面直接上computed处的代码:

解决VUEX刷新的时候出现数据消失

以上就是使用localStorage解决vuex的state的值在刷新之后没有了这个问题的方法。

方法二:

在mount里面commit一次

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery复选框CHECKBOX全选、反选
Aug 30 Javascript
理解javascript异步编程
Jan 27 Javascript
Vue.js动态添加、删除选题的实例代码
Sep 30 Javascript
JS创建对象的写法示例
Nov 04 Javascript
socket.io学习教程之基本应用(二)
Apr 29 Javascript
vue-loader教程介绍
Jun 14 Javascript
使用async-validator编写Form组件的方法
Jan 10 Javascript
JS中数组与对象的遍历方法实例小结
Aug 14 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
Feb 20 Javascript
vue动态配置模板 'component is'代码
Jul 04 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
Nov 10 Javascript
使用AutoJs实现微信抢红包的代码
Dec 31 Javascript
vue.js学习之UI组件开发教程
Jul 03 #Javascript
用js将long型数据转换成date型或datetime型的实例
Jul 03 #Javascript
Vue.js实例方法之生命周期详解
Jul 03 #Javascript
基于Vuejs和Element的注册插件的编写方法
Jul 03 #Javascript
Async Validator 异步验证使用说明
Jul 03 #Javascript
在vue-cli脚手架中配置一个vue-router前端路由
Jul 03 #Javascript
Require.js的基本用法详解
Jul 03 #Javascript
You might like
php学习之 数组声明
2011/06/09 PHP
php调用c接口无错版介绍
2014/03/11 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
2015/04/14 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
2019/07/10 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
英国电气世界:Electrical World
2019/09/08 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
党员思想汇报范文
2013/12/30 职场文书
小孩百日宴答谢词
2014/01/15 职场文书
霸王洗发水广告词
2014/03/14 职场文书
原材料检验岗位职责
2014/03/15 职场文书
竞选生活委员演讲稿
2014/04/28 职场文书
党员民主评议自我评价
2014/10/20 职场文书
项目负责人岗位职责
2015/02/15 职场文书
上下班时间调整通知
2015/04/23 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
Java Socket实现多人聊天系统
2021/07/15 Java/Android