uni-app 保持登陆状态 (Vuex)

在小程序中,保持登陆状态是很常见的需求,今天就把写一写使用uni-app框架的保持登陆状态功能是怎样实现的。html

1、场景需求vue

一、场景:初始打开---登录---关闭,再次打开---(已登陆)上次关闭前的页面vuex

二、cookie:传统应用保持登陆状态的方式是经过读取 cookie 来判断是不是登陆状态,可是uni-app不支持对cookie的读写。小程序

三、实现:uni-app 的官网的API 有这样一栏“数据缓存”,并且uni-app框架的主体是 VUE,那么咱们就用 uni.setStorage 和  vuex  进行登陆状态管理。api

2、实现过程缓存

一、vuex的声明和使用 请看 《uni-app 使用Vuex+ (强制)登陆安全

二、在store/index.js 中cookie

三、在App.vue 网络

  每次进入应用前,由App.vue 中的周期函数进行监听,因此在加载函数中定义方法,从本地缓存中取出用户数据,而后调用login方法,不须要发起网络登陆请求。app

 

这样就实现了,只有不清除本地缓存,每次打开小程序应用时,都是登陆状态

3、总结

看到文档,有同步和异步这两种缓存数据,那么关于同步缓存和异步缓存的区别:
以Sync结尾的都是都是同步缓存,两者的区别是,异步不会阻塞当前任务,同步缓存直到同步方法处理完才能继续往下执行。
通俗点说,同步就是你下步操做须要上一步必须完成才能往下执行,异步就是下面的代码和这个操做没什么关系就用异步啦。
使用异步,性能会更好;而使用同步,数据会更安全。

一、因此在App.vue中,先是使用了let userInfo  = uni.getStorageInfoSync('userInfo')||''; 同步去获取缓存的数据,由于后续的操做依赖于更改storage后的数据,则须要同步。

二、在使用setStorageSync和setStorage的时发现setStorageSync不能传入对象

相关文章
相关标签/搜索