uniapp使用路由名称跳转

由于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)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/796060.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis-Plus动态表名

MyBatis-Plus动态表名 一、早期方案 1.1 MyBatis-Plus版本 1、添加MyBatis-Plus依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version> </dependency&g…

PbootCMS附件上传失败报错UNKNOW: Code: 8192; Desc: stripos()

在PBootCMS中遇到附件上传失败的报错 UNKNOW: Code: 8192; Desc: stripos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior,这通常是因为PHP版本升级后某些函数的行为发生了变化。具体来说…

Android Studio单独运行Java程序

见图:添加代码如下: <option name="delegatedBuild" value="false" />

西门子WinCC开发笔记(一):winCC西门子组态软件介绍、安装

前言WinCC,非常经典的组态软件,西门子触摸屏。  西门子PLC的软件还是弄得比较多,WinCC是西门子触摸屏的编程和仿真软件,配套西门子的触摸屏,可以组态编程、仿真然后下载到HMI人机触摸屏上,作为组态软件来说,是非常值得了解、熟悉和学习的。 相关博客《案例分享:Qt激光…

面试-JS Web API-事件绑定和事件代理

编写一个通用的事件监听函数 描述事件冒泡的流程 无线下拉的图片列表,如何监听每个图片的点击?---事件代理 用e.target获取触发元素 用matches判断是否是触发元素事件绑定 addEventListenerfunction bindEvent(elem, type, fn) {elem.addEventListener(type, fn) }const btn1…

用 Rust 实现敏感信息拦截插件,提升 AI 网关安全防护能力

本⽂对敏感信息拦截插件的使用方式和实现原理进行了简单介绍,它能够自动检测并处理请求和响应中的敏感词,有效防止敏感信息泄露。通过对不同数据范围的支持和灵活的配置选项,该插件能够适应各种应用场景,确保数据的安全性和合规性。希望对你有帮助!作者:刘毅杰,棱镜七彩…

Linux--软链接,硬链接

在 Linux 和类 Unix 系统中,软链接(符号链接)和硬链接是用于文件系统中引用文件的两种方式。它们各自有不同的特点和用途。 软链接(符号链接) 硬链接定义 软链接是一个指向另一个文件或目录的特殊文件,包含指向目标文件路径的文本信息 硬链接是指向文件系统中同一文件的…

ant design使用本地IconFont文件

先参考这个官网的示例 :官网示例:通过设置 createFromIconfontCN 方法参数对象中的 scriptUrl 字段, 可以使用 iconfont.cn 项目中的图标。在iconfont.cn网站使用symbol方式生成在线链接。 但官网的说明有个问题,就是全部使用的是网络引用,有时候我们需要的环境可能并不是…

容器云平台建设可行性分析报告

一、项目背景和原因1.1 什么是容器云1.2 容器和虚拟机的区别1.3 为什么要建设容器云1.4 我们的建设目标1.5 建设过程可能存在的风险二、容器云PaaS平台构建2.1 总体技术架构2.2 设计原则2.3 总计规划三、容器云平台关键技术选型3.1 容器核心技术3.2 容器编排技术3.3 容器网络技…

机器学习 - 课程笔记

线性回归 代价函数J,也被称为平方误差函数,用来描述假设函数值与真实值的误差大小。其中乘1/2是用于减少平均误差,并且后面求导会有一个2,可以消掉。线性回归的代价函数常用平方误差函数。假设函数的参数是x,代价函数的参数是θ。梯度下降法 要得到最小化代价函数的Θ0和Θ…

通过LiveGBS实现安防监控摄像头GB28181转成WebRTC流实现web浏览器网页无插件低延迟直播

@目录1、WebRTC超低延时直播2、WebRTC延时对比3、LiveGBS的低延时的WebRTC流4、分屏页面如何选择默认播放流5、无法播放Webrtc6、搭建GB28181视频直播平台 1、WebRTC超低延时直播 需要低延时的视频流监控播放,之前可以用rtmp的低延时播放(1秒左右),随着浏览器对rtmp的禁用,…

MUR3040CT-ASEMI快恢复二极管MUR3040CT

MUR3040CT-ASEMI快恢复二极管MUR3040CT编辑:ll MUR3040CT-ASEMI快恢复二极管MUR3040CT 型号:MUR3040CT 品牌:ASEMI 封装:TO-220AB 安装方式:插件 批号:最新 恢复时间:35ns 最大平均正向电流(IF):30A 最大循环峰值反向电压(VRRM):400V 最大正向电压(VF):0.95V~1…