美文网首页
vuex localstorage缓存用户信息及登录状态

vuex localstorage缓存用户信息及登录状态

作者: 也许平淡就挺好 | 来源:发表于2019-08-09 12:55 被阅读0次

想探讨这个问题很久了,从网上找各种资料发现都不是很明了,或者有的压根就不对,于是自己研究一下,尝试着说清楚这件事,如果有不对的地方,还请各位大牛指正。小弟将及时更正以免误人子弟。

首先,需要先弄明白一个问题,为什么不能单独使用vuex或者单独使用localstorage(sessionstorage一样的道理)?

1.为什么不能单独使用vuex?因为vuex刷新页面会丢失。

为什么会丢失?vue是单页面应用SinglePage Web Application。什么叫单页面应用?每次刷新页面相当于重新生成,或者说加载(初始化)页面,每次都是一个新的,当然会丢失。

2.为什么不单独使用localstorage?其实非要这么用,是完全可以的。但是为什么不这么用呢?因为storage存储的是文件,而vuex是缓存,当然缓存速度快,所以要二者一起使用。

3.如何实现vuex+localstorage实现缓存用户的信息,这里我写了个较为简单的例子,下面贴代码(小白不经常写博客,不知道如何在文章里写技术代码,只能贴图了,请见谅)

具体流程:

1.登录成功后,返回所需信息,存入store及localstorage

2.页面通过getter方法获取所需信息

3.如果某些地方需要修改storage,需要使用commit调用mutation中的方法设置

4.退出清楚缓存

主要文件 index.js getter.js mutation.js 登录成功的代码 退出的代码 页面取值的代码

相信有些vue基础的朋友应该能看懂以上代码。

当时最纠结的一个问题就是,为什么非要用store的commit调用mutatuion中的方法来设置值?

而不是直接this.$store.state.userInfo = pojoVuexUser;??????

如果您没考虑过这个问题,那我觉得您应该不是一个合格的程序员,或者只能是个普通的码农了。

然而本人抱着怀疑的态度尝试了下,this.$store.state.userInfo = pojoVuexUser我擦,居然成功了,并且在页面上取值也是响应式的!!!!!!赞。但是,为毛不能这么使用?且vuex官方原文中也说了

更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。

大概说一下,如果直接调用this.$store.state.xxx这样赋值的话,如果开启vuex的严格模式是会报错的,且vue的调试工具不会记录state的改变。

具体本人就不在这里细说了,这里有篇大神的文章,解释的很清楚

https://blog.csdn.net/zhq2005095/article/details/78359883

相关文章

  • vuex localstorage缓存用户信息及登录状态

    想探讨这个问题很久了,从网上找各种资料发现都不是很明了,或者有的压根就不对,于是自己研究一下,尝试着说清楚这件事,...

  • 第一次与vue亲密接触的挖坑和填坑之路

    1. vuex以及本地存储localStorage如何实现登录之后在刷新的时候登录状态仍然在。 借鉴这篇回答:如何...

  • vue 中使用vuex和localStorage保存登录状态

    需求:刷新页面,登录状态不会因此改变 首先说一下vuex和localStorage的区别 1.实质区别 vuex存...

  • vue 中使用vuex和localStorage保存登录状态

    需求:刷新页面,登录状态不会因此改变 首先说一下vuex和localStorage的区别 1.实质区别vuex存的...

  • localStorage + Vuex 保存用户信息

    在我们***项目中,使用了Vue前端框架,由于某些页面(比如最近的秋季抽奖主题以及玩家社区评论页面和点赞页面)需要...

  • Vuex状态管理

    简介 Vuex用作共享状态管理或者复杂跨组件通信(非父子组件)。共享状态管理如登录状态、用户信息、购物车等等。包含...

  • Vuex + localStorage 实现用户登录

    使用过 Vuex 的都知道, 存储在 Vuex 中的数据不能持久化, 刷新页面之后数据就会丢失, 这对于用户登录需...

  • springboot整合EHCache

    用户登录之后,几乎之后展示任何页面都需要显示一下用户信息。可以在用户登录成功之后将用户信息进行缓存,之后直接取缓存...

  • uni-app多个账号切换登录

    一、缓存用户信息 1. 用户登录成功后缓存下用户的账号,token等一些能识别出用户的信息 2.缓存用户信息的时候...

  • 2020-02-16

    Vuex: 哪些状态需要我们在多个组件间共享呢: *用户的登录状态,用户名称,头像,地理位置 ...

网友评论

      本文标题:vuex localstorage缓存用户信息及登录状态

      本文链接:https://www.haomeiwen.com/subject/ewgcjctx.html