解决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 相关文章推荐
基于jquery1.4.2的仿flash超炫焦点图播放效果
Apr 20 Javascript
用jquery实现下拉菜单效果的代码
Jul 25 Javascript
js动态改变select选择变更option的index值示例
Jul 10 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
Oct 29 Javascript
javascript实现input file上传图片预览效果
Dec 31 Javascript
酷炫jQuery全屏3D焦点图动画效果
Mar 22 Javascript
深入分析node.js的异步API和其局限性
Sep 05 Javascript
微信小程序 教程之事件
Oct 18 Javascript
vue.js组件之间传递数据的方法
Jul 10 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
Apr 04 Javascript
vue如何实现动态加载脚本
Feb 05 Javascript
36个正则表达式(开发效率提高80%)
Nov 17 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
将数组写入txt文件 var_export
2009/04/21 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
使用Python制作表情包实现换脸功能
2019/07/19 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
python 魔法函数实例及解析
2019/09/25 Python
python用requests实现http请求代码实例
2019/10/31 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
Python如何读写二进制数组数据
2020/08/01 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
办理护照介绍信
2014/01/16 职场文书
八年级语文教学反思
2014/02/11 职场文书
中学生演讲稿
2014/04/26 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
师德培训心得体会2016
2016/01/09 职场文书
倡议书怎么写?
2019/04/11 职场文书