解决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 相关文章推荐
实用框架(iframe)操作代码
Oct 23 Javascript
JavaScript中的数值范围介绍
Dec 29 Javascript
jQuery中:radio选择器用法实例
Jan 03 Javascript
jquery自定义插件开发之window的实现过程
May 06 Javascript
全面解析Bootstrap中form、navbar的使用方法
May 30 Javascript
jQuery简单实现上下,左右滑动的方法
Jun 01 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
Jun 12 Javascript
探究JavaScript中的五种事件处理程序方式
Dec 07 Javascript
详解利用jsx写vue组件的方法示例
Jul 17 Javascript
10个经典的网页鼠标特效代码
Jan 09 Javascript
extjs图表绘制之条形图实现方法分析
Mar 06 Javascript
vue - props 声明数组和对象操作
Jul 30 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
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
Javascript 各浏览器的 Javascript 效率对比
2008/01/23 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
Python是编译运行的验证方法
2015/01/30 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
利用Python实现Windows定时关机功能
2017/03/21 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
C++的几个面试题附答案
2016/08/03 面试题
项目考察欢迎辞
2014/01/17 职场文书
励志演讲稿范文
2014/04/29 职场文书
2014年秋季开学典礼致辞
2014/08/02 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
四年级学生期末评语
2014/12/26 职场文书
医院合作意向书范本
2015/05/08 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
会议营销主持词
2015/07/03 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
2016元旦主持人经典开场白台词
2015/12/03 职场文书
医学会议开幕词
2016/03/03 职场文书