小程序中登出/切换/重置页面状态的使用

小程序中登出/切换/重置页面状态的使用 前言用户退出登录需要清空所有页面状态切换账号需要销毁旧页面栈并跳转到登录页业务异常 / Token 过期需要强制重置小程序环境如果频繁使用 wx.navigateTo对页面栈残留、数据污染、状态不同步问题时束手无策。一、wx.reLaunch 重启式重置最推荐核心逻辑关闭所有页面 → 打开新页面 → 全新页面栈相当于小程序冷启动重置。底层做了什么清空所有历史页面栈pages stack销毁所有页面实例onUnload 触发重新渲染目标页面页面栈长度 1优点真正彻底重置无任何页面残留清空所有页面状态、data、定时器、监听逻辑最简单一行代码解决适合退出登录、切换账号、强制重置缺点会出现页面闪屏因为销毁重建当然加上友好的提示框显示可以完全忽略这个问题部分自定义导航栏会短暂闪烁无法保留任何页面状态// 退出登录 → 跳登录页彻底重置wx.reLaunch({url: ‘/pages/login/login’})方案 2静默清理不跳转路由纯数据重置核心逻辑不跳转页面只手动清空全局数据 页面数据。底层做了什么清空 getApp().globalData清空当前页面 this.setData清除定时器、监听、eventChannel清空 Storage 敏感信息优点无闪屏体验丝滑不改变页面栈适合轻量级刷新缺点容易漏清理导致数据残留页面多了维护成本极高无法销毁隐藏页面的状态