小程序无限层级路由无框架解决方案

 时间:2026-02-17 02:33:55

1、是基于wepy框架做的处理,由于用的是mpvue,所以对这个方案上做了修改,同时不依赖于框架。虽然是改造版,但原理是一样的,下面我来介绍一下修改后的方案。

2、几个关键点:

1.9层(含9层)以内时 :走小程序自己的历史栈就ok了,跳转时候更新一下逻辑栈,这没啥可说的

2.从9层跳转10层 :需要把第9层重定向到中转页,再由中转页跳转到10层

3.10层以后跳转 :在navigateTo方法中处理,到10层之后,再跳转就第10层页面一直做redirectTo(重定向)操作了

4.10层以上返回 :会返回到中转页,由中转页判断,具体返回到哪个页面,然后navigateTo(跳转)过去

5.从10层返回到9层 :返回到中转页,将中转页redirectTo(重定向)到第9层页面

6.9层内的返回 :直接返回就好了,返回时候不会更新逻辑栈,但没有关系,因为只有中转页才会用到逻辑栈

7.逻辑栈更新机制 :

跳转、返回中转页时更新

navigateTo时更新

redirectTo时更新

reLaunch时更新

navigateBack时更新

小程序无限层级路由无框架解决方案

3、之前跳转操作和10层以上的返回操作都会更新逻辑栈,到了10层以内的返回操作就不会更新逻辑栈了。

这块也是我们对原有方案的主要改造点。因为到了10层以内,所有的返回和跳转都由微信系统历史栈接管了。

我们只要保证用户在通过api进行跳转操作时更新就可以了。而且,自己维护的逻辑路由栈实际上只有中转页才会用到。

这样也就不用在每个页面都要注册onUnload钩子去实时更新返回时的路由信息了。把更新路由信息的逻辑都放到了api调用这一层。业务开发时完全不用关心。

1、lib/navigator/Navigator.js (自己封装的跳转方法, History.js代码省略了)

小程序无限层级路由无框架解决方案

小程序无限层级路由无框架解决方案

  • 全新解读上海注册数码科技公司流程
  • 和平精英怎么分解物资获得金币
  • 和平精英歪头设置了怎么不出来
  • 和平精英空白名字ID怎么弄
  • 绝地求生刺激战场怎么退出战队 有没有时间限制
  • 热门搜索
    同归于尽的意思 finish是什么意思 万紫千红的意思 肆无忌惮是什么意思 食指戴戒指是什么意思 录取通知书什么时候 什么是三本 安排什么意思 儿童餐椅什么牌子好 电烙铁什么牌子好