首页 > 其他分享 >uniapp开发——未登录登录失效页面登录后页面回调的处理

uniapp开发——未登录登录失效页面登录后页面回调的处理

时间:2023-12-20 22:25:33浏览次数:26  
标签:uniapp 登录 onShow 标识 跳转 isRefresh 页面

刚开始默认沿用了前边小程序的做法,即在单击事件或者onHide函数中缓存标识,onShow中读取标识,对必要的业务逻辑进行重新请求。具体代码如下:

微信小程序登录后页面回调的处理方案:

1.缓存回调刷新标识:

单击事件中设置:

methods:{
    onSubmit(){
        this.setData({
            isRefresh:true
        })
    }    
}

或者直接onHide函数中设置:

onHide(){
    this.setData({
        isRefresh:true
    })
}   

2. onShow函数中读取刷新标识,如果为真则刷新页面,对必要的业务逻辑进行重新请求:

onShow: function() {
  if (this.isRefresh) {
    this.init()
  this.setData({
        isRefresh:false
     })
   } 
}

但是到uniapp中就不行了,如果还按上边的方式,很可能会连续两次跳转到登录页面。

异常解析:

经验证,如果onLoad函数中发生了路由跳转,那么生命周期加载顺序是这样的:onLoad——onShow——onReady,这就跟小程序大相径庭了。

结果就是onLoad设置了刷新标识,onShow跟随而来,页面还没跳转出去,就已经进行回调了,最终结果就是跳了两次登录页面。

那么怎么处理呢?

解决方案:

可以采用路由跳转的回调函数,在回调函数中设置页面刷新标识,这样就能避免上边的异常情况发生了,具体代码如下:

onLoad() {
    if (uni.getStorageSync("authTicket")) {
      this.init();
    } else {
      uni.navigateTo({
        url: "/pages/login/index",
        success() {
          self.isRefresh = true;
        }
      });
    }
  },
  onShow: function() {
    if (uni.getStorageSync("authTicket") && this.isRefresh) {
      this.init();
      this.isRefresh = false;
    }
  }

后记:

uniapp尤其是纯原生渲染nvue,总会有一些与小程序、h5不同的地方,而且调试还没有那么方便,报错信息经常性的指向代码不准确,这个就只能通过console.log多输出日志查看了。

标签:uniapp,登录,onShow,标识,跳转,isRefresh,页面
From: https://www.cnblogs.com/xyyt/p/17917621.html

相关文章

  • 鸿蒙开发之初页面UIAbility
    UIAbility类似于一个整体的应用声明入口,比如小程序的app.js,比如安卓端的activity正常页面开发使用的是一个UIAbility即可,然后在一个UIAbility里面通过路由的形式进行跳转 关于路由导入importrouterfrom'@ohos.router'; 跳转router.pushUrl({url:'pag......
  • uniapp app安卓、ios文件选择 (上传pdf word video img )等
    1、hybrid 必须放在项目根目录下,不然会调用失效:如图 2、建立nvue 子窗体  代码:1<template>2<viewclass="nvue">3<textclass="popup-item"@click="clickfun">选择文件</text>4<textclass="ddddd......
  • 关于在doker中部署superset后远程登录时原地跳转的问题
    排除密码错误后实时log查看报错:dockerlogs-fsuperset发现问题为flask_wtf.csrf:TheCSRFsessiontokenismissing.原因是Superset使用Flask和Flask-Login进行用户会话管理。以及TALISMAN_ENABLED这个对跨站点登陆有限制,需要关闭解决方案->**注意镜像内可能无法......
  • PDF文件打开时,总是定位到某个特定页面
    PDF文件正常打开时,会默认显示第一页,或者默认显示上次关闭时停留的页面。但是某个PDF特别奇怪,打开它时,总是显示在某个特定页面。当我把这个页移动到开头时,打开文档就定位到开头;当我把这个页移动到结尾时,打开文档就定位到结尾;当我把它移动到第3页,打开文档就定位到第3页。但是我......
  • uniapp vue3版本的scroll-view的scroll-into-view方法不生效解决
    问题代码如图bug原因建了vue2版本和vue3版本的uniapp分别测试,vue3版本的scroll-view存在scroll-into-view不生效的问题,目前未修复(23.12.20)解决方法,换了个思路,如图思路:获取当前选中元素的left值,并动态绑定给scroll-left实现定位效果......
  • C++聊天集群服务器解决客户端注销登录问题
    客户端如何处理注销登录问题?问题描述:​ 在客户端登录后进行注销选择,然后重新登录刚才注销的账号,直接卡死。注意这是概率发生,因为是主线程和子线程抢服务器发送的信息,只有子线程抢到才会发生卡死问题产生原因分析:​ 前置条件:主线程循环等待用户输入选择(第一张图是死循环,send......
  • vue3 实现用户登录和权限验证思路梳理
    2023-12-20星期三一、用登录和退出问题1登录 思路一: 1.1login登录页面,将token存储本地中。 1.2前置路由守卫获取token并验证, 1.3前置路由从缓存中获取用户的访问权限,并生成动态路由。 1.4aixos请求拦截器,从存储中获取存储的token,在所有请求前,设置请求头 思......
  • 页面缓存
    页面缓存根据需求分为以下3类类小程序:根据用户的跳转方法来决定如何操作页面缓存堆栈历史记录:根据用户访问的历史记录缓存一定数量的页面,超过限定数量时采用新进先出面包屑:根据面包屑结构,缓存当前页面的祖先页面类小程序需要解决的问题实现以下常用跳转方法navigateTo......
  • SSO单点登录源码解析
    单点登录:用户在单点登录成功后,会访问某一平台模块,1. 向客户端发送一个请求(免密登录接口),请求客户端接口会携带一个ticket,类似于:http//:ip:port:xxx?ticket=xxxx1. 这个请求会被客户端配置的EKPSSOCLIENT的过滤器拦截,读取配置文件sso-config.properties,获取过滤器链(CASURLFilter、Us......
  • vue3全栈项目:具有登录注册验证的在线实时聊天应用程序。
     项目主要实现的功能:登录注册的身份验证功能(利用JWT)来实现,在与后端验证的时候,会根据不同的身份显示不同的界面;而且根据不同角色赋予不同的权力,如管理员能查看信息,而普通用户只能登录到公共组件——在线实时俩天应用程序。多人在线实时聊天功能——前后端之间根据WebSocket......