连续点击、异步回调与页面销毁同时发生时,如何保证小程序导航结果确定
简答题困难763 次浏览
参考答案与解析
# 核心结论
要让连续点击、异步回调和页面销毁并发发生时的导航结果确定,不能把导航仅看成一次接口调用,而应将其建模为具有唯一流程标识、明确状态和生命周期约束的状态机。界面层通过按钮禁用、防抖或节流降低重复触发;业务层通过幂等键避免重复提交;路由层通过导航锁保证同一流程只提交一次导航;异步回调执行前还必须确认页面实例仍存活、当前流程仍有效、返回结果仍是最新版本。这几层分别解决不同问题,不能互相替代。
# 底层机制
小程序页面由页面栈管理。普通跳转会保留当前页并压入目标页,重定向会替换栈顶,返回会弹出页面,切换到 tabBar 页面以及重建页面栈又有不同语义。选择路由方式前应明确:目标页是否属于 tabBar、用户
