uniapp使用路由名称跳转

news/2025/2/10 13:35:53/

由于web端和app公用一套菜单,而两个项目的路径是不同的,为解决这个问题,封装了一套使用路由名称作为跳转路由的方法

1.在pages.json文件里pages对应的页面配置里添加 routeName 字段(自定义),我做的app里面的菜单是后台获取的,所以这里的value值对应的是后台返回的页面路由

2.开始封装函数

创建route文件夹,在里面创建index.js和router.js

(1).router.js是为了获取page.json里面的路由,里面内容如下:

复制代码

const defaultPages = require('@/pages.json')
const {pages,
} = defaultPages.defaultfunction getRouters() {const _routes = {}pages.forEach(item => {_routes[item.routeName] = `/${item.path}`})return _routes
}export default getRouters()

复制代码

(2).在index.js文件里引入router.js,拿到路由集合实现跳转,index.js里面的代码如下:

复制代码

import routers from './router';/*** 路由跳转* @param name 页面路由名称* @param type 跳转方式* @param params 携带参数* @param delta 页面返回层级,仅 type='navigateBack' || type='back' 时生效*/
function customRoute(config) {let _routeName = typeof config === 'string' ? config : config.namelet _params = typeof config === 'string' ? {} : config.params || {}let _type = typeof config === 'string' ? 'navigateTo' : config.type || 'navigateTo'let _url = routers[_routeName]if (_type === 'navigateTo' || _type === 'to') {uni.navigateTo({ url: _url })}if (_type === 'redirectTo' || _type === 'redirect') {uni.redirectTo({ url: _url })}if (_type === 'switchTab' || _type === 'tab') {uni.switchTab({ url: _url })}if (_type === 'reLaunch' || _type === 'launch') {uni.reLaunch({ url: _url })}if (_type === 'navigateBack' || _type === 'back') {uni.navigateBack({ delta: _params.delta || 1 })}
}export default customRoute

复制代码

3.在main.js里面挂载到Vue实例

import customRoute from '@/route'
Vue.prototype.$routeTo = customRoute

跳转方式:我这里是获取到的地址

this.$routeTo(item.url)

   

   关注灵活就业新业态,关注公账号:贤才宝(贤才宝https://www.51xcbw.com)


http://www.ppmy.cn/news/1570870.html

相关文章

基于lstm+gru+transformer的电池寿命预测健康状态预测-完整数据代码

项目视频讲解: 毕业设计:基于lstm+gru+transformer的电池寿命预测 健康状态预测_哔哩哔哩_bilibili 数据: 实验结果:

Unity3D实现UGUI拖拽移动

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、实现原理👉二、方法一👉方法二👉壁纸分享👉总结👉前言 在 Unity UGUI 中实现拖拽移动的功能,主要基于事件系统、坐标转换和位置更新这几个关键步骤,下面详细介绍其原理 博客将会介绍如何实现UGUI拖…

如何将Excel的表格存为图片?

emmm,不知道题主具体的应用场景是什么,就分享几个我一般会用到的场景下奖excel表格保存为图片的技巧吧! 先来个总结: 方法 适用场景 画质 操作难度 截图(WinShiftS) 快速保存表格,方便粘贴…

使用WebUI访问本地Deepseek(Ollama集成Open WebUI)

在《deepseek本地部署和使用(Linux虚拟机)》中,我们使用Ollama部署了Deepseek-r1,但是只能通过命令行方式交互,默认Ollama启动后,会启动一个监听到127.0.0.1,用以接收POST 请求,服务…

C#控件开发6—指示灯

按钮功能:手自动旋转,标签文本显示、点击二次弹框确认(源码在最后边); 【制作方法】 找到控件的中心坐标,画背景外环、内圆;再绘制矩形开关,进行角度旋转即可获得; 【关…

微信小程序案例1——制作猫眼电影底部标签导航栏

文章目录 一、项目步骤1 新建一个无AppID的movie项目2将准备好的底部标签导航图标拷贝到movie项目下面(将图标文件夹image放到项目文件夹里)3 打开App.json配置文件,在pages数组里添加4个页面路径:电影“pages/movie/movie”、影院“pages/cinema/cinema”、发现“pages/find…

VERA: 基于视觉-语言模型的解释性视频异常检测框架

文章目录 速览摘要01 引言1.1 关键观察与研究问题1.2 我们的方法1.3 贡献 02 相关工作2.1 视频异常检测2.2 针对VLM的语言化学习 03 VERA框架3.1 视频异常检测的任务定义3.2 在VERA中通过语言化学习寻找VAD指导性问题训练目标训练数据通过学习者与优化器更新 Q Q Q学习者与优化…

CSS基本语法和常用属性

目录 一、CSS二、CSS基本语法三、CSS的三种形式1、行内样式2、内部样式3、外部样式4、三者的优先级问题5、代码演示 四、选择器1 基础选择器1.1标签选择器1.2 ID选择器1.3 Class选择器1.4 属性选择器 2. 组合选择器2.1 层次选择器4.2.2 并列选择器 3. 伪类选择器4、选择器的优先…