解决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 相关文章推荐
用javascript实现的仿Flash广告图片轮换效果
Apr 24 Javascript
javascript prototype,executing,context,closure
Dec 24 Javascript
Jquery 实现Tab效果 思路是js思路
Mar 02 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
Oct 06 Javascript
基于javascript的JSON格式页面展示美化方法
Jul 02 Javascript
DOM基础教程之使用DOM控制表格
Jan 20 Javascript
javascript正则表达式之分组概念与用法实例
Jun 16 Javascript
vue组件watch属性实例讲解
Nov 07 Javascript
微信小程序上传图片实例
May 28 Javascript
vue下history模式刷新后404错误解决方法
Aug 18 Javascript
微信小程序登录态和检验注册过没的app.js写法
May 22 Javascript
JS实现横向跑马灯效果代码
Apr 20 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
PHP得到mssql的存储过程的输出参数功能实现
2012/11/23 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
Python yield 小结和实例
2014/04/25 Python
零基础写python爬虫之抓取百度贴吧代码分享
2014/11/06 Python
python实现将内容分行输出
2015/11/05 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
python爬虫添加请求头代码实例
2019/12/28 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
Python如何向SQLServer存储二进制图片
2020/06/08 Python
Python通过len函数返回对象长度
2020/10/22 Python
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
培训研修方案
2014/06/06 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
小鞋子观后感
2015/06/05 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL
Python 中random 库的详细使用
2021/06/03 Python