解决小程序路由超过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}`)
相关推荐
一枚前端小能手9 小时前
🧭 使用历史记录 API - SPA导航与状态管理的完整指南
前端·javascript
用户47949283569159 小时前
从字符串满天飞到优雅枚举:JavaScript 常量管理的几种姿势
前端·javascript
qq_415216259 小时前
Vue3+vant4+Webpack+yarn项目创建+vant4使用注意明细
前端·webpack·node.js
李建军10 小时前
ASP.NET Core Web 应用SQLite数据连接显示(1)
前端
耀耀切克闹灬10 小时前
word文档转html(mammoth )
前端
文心快码BaiduComate10 小时前
双十一将至,用Rules玩转电商场景提效
前端·人工智能·后端
拉不动的猪10 小时前
关于scoped样式隔离原理和失效情况&&常见样式隔离方案
前端·javascript·面试
摇滚侠10 小时前
Vue 项目实战《尚医通》,医院详情菜单与子路由,笔记17
前端·vue.js·笔记
有来技术10 小时前
vite-plugin-vue-mcp:在 Vue 3 + Vite 中启用 MCP,让 AI 理解并调试你的应用
前端·vue.js·人工智能
fruge10 小时前
前端本地存储进阶:IndexedDB 封装与离线应用开发
前端