跨平台应用开发进阶(十三) :uni-app应用异常退出时处理机制探究_uniapp退出应用监听(2)

Vue

  • 什么是MVVM?

  • mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?

  • 组件之间的传值?

  • Vue 双向绑定原理

  • 描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?

  • 虚拟 DOM 实现原理

  • Vue 中 key 值的作用?

  • Vue 的生命周期

  • Vue 组件间通信有哪些方式?

  • vue 中怎么重置 data?

  • 组件中写 name 选项有什么作用?

  • Vue 的 nextTick 的原理是什么?

  • Vuex 有哪几种属性?

    开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

初读以上需求,可以应用uni-app提供的setStorage()setStorageSync()内置方法实现。

但是,以下问题需要考虑清楚:

  1. 何时调用以上方法缓存数据,应用定时任务setInterval(callback, delay, rest)?还是通过页面【暂存】按钮触发缓存动作?
  2. 何时调用缓存中的数据信息进行uni.getStorage()回显?
  3. 何时调用uni.removeStorage()清空缓存中的数据信息?

给出的思考结果如下:

  1. 应用定时任务setInterval(callback, delay, rest)调用以上缓存数据方法会存在设置的delay值过小,影响APP性能;delay值过大,会造成当前用户输入信息还未暂存,用户返回上一页进行其他操作导致当前输入信息未暂存问题,所以设置一个合适值至关重要,既能最大限度的做到不影响应用性能,也能过做到保证数据完整性;通过页面【暂存】按钮触发缓存动作,可以保证数据的完整性。但是以上2种策略均不能很好的解决应用闪崩问题。
  2. 当用户从其他页面重新进入当前信息维护页时,调用缓存中的数据信息进行uni.getStorage()回显。
  3. 用户登出时,调用uni.removeStorage()清空缓存中的数据信息。

二、实现机制

  • 为应对用户异常退出场景,在用户非正常退出(即并不是点击【退出】按钮退出系统)时,保存用户申请信息;
  • 缓存的数据信息为【用户ID + 企业ID】作为缓存主键,确保数据一致性、完整性,保障数据安全;
  • 缓存内存有数据信息时,就调用缓存中的数据信息,缓存内无数据信息,则用户重新录入;
  • 用户点击【退出】按钮时,清除缓存信息;

考虑根据页面生命周期函数进行处理,在博文《跨平台应用开发进阶(一) :走近 uni-app》中介绍了页面生命周期onHide()onUnload(),我们注意到onHide()触发的场景:

  • 导航页1---->导航页2,会触发导航页1 onHide();
  • 导航页----->子页面,会触发导航页 onHide();
  • 子页面1----->子页面2,会触发子页面1 onHide();
  • 切换到其他应用时,触发当前页面的onHide();

onUnload()触发的场景:

  • 从子页面2返回到子页面1,会触发子页面2的onUnload();
  • 从子页面返回到导航页,会触发子页面的onUnload();

注意:
导航页之间的切换不会触发onUnload()
页面2返回到(页面1或者导航页)时,页面2只会触发onUnload(),并不会触发onHide()

由此可知,

  • 在页面生命周期onHide()onUnload()应用uni.setStorage()缓存用户信息;

Vue

  • 什么是MVVM?

  • mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?

  • 组件之间的传值?

  • Vue 双向绑定原理

  • 描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?

  • 虚拟 DOM 实现原理

  • Vue 中 key 值的作用?

  • Vue 的生命周期

  • Vue 组件间通信有哪些方式?

  • vue 中怎么重置 data?

  • 组件中写 name 选项有什么作用?

  • Vue 的 nextTick 的原理是什么?

  • Vuex 有哪几种属性?

    开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值