解决小程序路由超过10层限制

新建 navroter.js

javascript 复制代码
// 路由判断,小程序路由超过10层限制
// 避免小程序商品重复切换导致页面到结算单页时无法跳转到收货地址页,所以这里层级限制最大数为8
const MAX_VALUE = 8
export function navigateTo(url) {
    let pages = getCurrentPages()
    let dlt = ''
    // 查找目标页在页面栈的位置
    for (var i = 0; i < MAX_VALUE; i++) {
        if (pages[i]) {
            if (pages[i].$page && pages[i].$page.fullPath && (pages[i].$page.fullPath == url)) {
                dlt = i + 1; //目标页在栈中的位置
                break;
            }

        }
    }
    // 如果有重复则返回到页面栈页面
    if (dlt) {
        uni.navigateBack({
            delta: pages.length - dlt
        })
    } else {
        if (pages.length < MAX_VALUE) {
            uni.navigateTo({ url: url })
        } else {
            uni.redirectTo({ url: url })
        }
    }
}

main.js 全局引入

javascript 复制代码
import { navigateTo } from '@/utils/navroter.js';
Vue.prototype.navigateTo = navigateTo;

使用

javascript 复制代码
this.navigateTo(`/goods-module/goods?goods_id=${goods.goods_id}`)
相关推荐
Beginner x_u2 分钟前
前端八股整理|浏览器|高频小题 01
前端
恋猫de小郭5 分钟前
Copilot 下架 opus ,Qwen 开始按量计费,GLM 限制非代码使用,Token都在涨价,人还比 Token 便宜吗?
前端·人工智能·ai编程
invicinble8 分钟前
总结前端架子--vuecli(前端脚手架)
前端
码云社区14 分钟前
家政小程序+后台源码分享:保姆级教程,快速搭建自有平台
小程序·家政·家政服务·家政系统
幽络源小助理15 分钟前
二维码生成与解析工具HTML源码_纯前端响应式二维码制作_幽络源源码
前端·html
1314lay_100718 分钟前
匿名插槽和具名插槽的使用
前端·javascript·vue.js
aq553560025 分钟前
HTML头部元信息避坑指南
前端·html
A923A35 分钟前
Vue 和 React 常用脚手架工具总结
前端·vue.js·react.js·脚手架
skywalk816335 分钟前
CherryStudioWeb:一个优雅的 AI 聚合导航页,让你在一个页面访问所有主流 AI 服务。
前端·css·人工智能·html