uniapp中路由的基本使用方法、参数传递方式以及路由拦截与权限控制

news/2024/9/14 0:43:36/ 标签: 微信小程序, php, crmeb, uniapp

一、概述
uniapp开发中,路由是非常重要的一个方面,它可以实现页面之间的跳转和传递参数。本文将介绍uniapp中路由的使用技巧,并给出具体的代码示例。

二、uniapp路由的基本使用
uniapp中,路由的基本使用可以通过uni.navigateTo、uni.redirectTo、uni.reLaunch、uni.switchTab等API来进行页面跳转。这些API的使用场景略有不同,具体使用取决于项目需求。

1.uni.navigateTo:用于打开新页面,并保留当前页面。适用于普通的页面跳转。

示例代码:

uni.navigateTo({url: '/pages/detail/detail?id=1'
});

2.uni.redirectTo:用于关闭当前页面,并打开新页面。适用于不需要返回上一页的页面跳转。

示例代码:

uni.redirectTo({url: '/pages/home/home'
});

3.uni.reLaunch:关闭所有页面,打开到应用内的某个页面。适用于从其他平台扫码进入小程序的场景。

示例代码:

uni.reLaunch({url: '/pages/login/login'
});

4.uni.switchTab:跳转到tarBar页面,并关闭其他所有非tarBar页面。适用于底部导航栏页面之间的跳转。

示例代码:

uni.switchTab({url: '/pages/home/home'
});

三、uniapp路由参数的传递
uniapp中,可以通过URL参数的方式来进行页面之间的数据传递。

1.页面之间传递参数在页面A跳转到页面B时,可以通过URL参数来传递数据。在A页面的跳转代码中,通过拼接url的方式传递参数:

uni.navigateTo({url: '/pages/detail/detail?id=' + id
});

2.在B页面中,可以通过uni.$route.query来获取参数值:

onLoad() {console.log(this.$route.query.id);
}

页面返回时传递参数

uniapp中,可以通过uni.navigateBack方法返回上一个页面,并通过调用上一页页面的onBack方法传递参数。具体代码如下:

3.在A页面中,跳转到B页面时,传递参数,并注册上一页页面的onBack方法:

uni.navigateTo({url: '/pages/detail/detail?id=' + id + '&callback=onBack'
});

4.在B页面中,获取参数值,并在页面返回时调用上一页页面的onBack方法传递参数:

methods: {goBack() {uni.navigateBack({delta: 1,success: () => {uni.getOpenerEventChannel().emit(this.asr_notify);}});}
}

5.在A页面中,注册onBack方法并接收参数:

methods: {onBack(data) {console.log(data);}
}

四、uniapp路由拦截与权限控制
在开发过程中,有时候需要对某些页面进行权限控制,以阻止未登录用户访问某些页面。

uniapp中,可以通过导航守卫来实现路由拦截和权限控制。具体代码如下:

1.创建全局路由拦截器,在main.js文件中:

// 全局路由拦截器
router.beforeEach((to, from, next) => {const token = uni.getStorageSync('token');if (to.meta.requiresAuth && !token) { // 判断是否需要登录才能查看页面next('/pages/login/login');} else {next();}
});

2.在需要进行权限控制的页面配置路由元信息:

export default {meta: {requiresAuth: true // 需要登录才能访问}// 省略其他代码...
}

通过以上操作,可以实现对需要登录才能访问的页面进行权限控制,未登录用户将被拦截并跳转到登录页。

总结:
本文介绍了uniapp中路由的基本使用方法、参数传递方式以及路由拦截与权限控制。通过合理的使用路由,可以实现页面之间的跳转和数据传递,提升应用的用户体验。


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

相关文章

ai变声:视频怎么变音?分享6个语音变声器,视频变声不再难!

想过如何让自己的直播内容更吸引人吗?你是否希望通过变声器来打造独特的声音效果?或者,如何用创意声音提升观众的互动体验呢?随着直播行业的不断发展,每位主播都在努力寻找吸引观众的独特方式,而变声器正是…

【Test 001】Qt 开发基础体系 QMap 类和 QHash 类以及 QVector 类

文章目录 1.QMap 详解1.1 QMap 的介绍1.2 QMap 的具体用法如下1.3 QmultiMap类 2.QHash 详解3. QMap 和 QHash 的对比4. QVector 详解 1.QMap 详解 1.1 QMap 的介绍 &#x1f427;① QMap<key,T>提供一个从类型为Key的键到类型为T的值的映射。通常&#xff0c;QMap存储的…

新手小白Ubuntu18.04超详细安装教程

1、Ubuntu18.04系统下载地址 Ubuntu18.04下载地址 直接下载桌面版 2、Ubuntu18.04安装 &#xff08;1&#xff09;打开VMware虚拟机 文件—>新建虚拟机—>选择典型 &#xff08;2&#xff09;选择稍后安装系统 &#xff08;3&#xff09;选择linux系统&#xff0c;…

学习记录:js算法(十五):三数之和

文章目录 三数之和我的思路网上思路 总结 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&…

win/mac视频剪辑软件Premiere Pro 2024下载安装

目录 一、简介 &#xff08;一&#xff09;高级调色功能 &#xff08;二&#xff09;字幕制作 &#xff08;三&#xff09;与其他 Adobe 软件的协同工作 下载 二、安装 &#xff08;一&#xff09;安装前的准备工作 &#xff08;二&#xff09;安装过程中的常见问题及解…

前端面试宝典【CSS篇】【8】

在前端开发的世界里,每一次面试都是一次机遇,也是一次挑战。 你是否曾因技术深度不够而错失良机? 或是面对最新的技术趋势感到迷茫? 我们的【前端面试宝典】正是为此而来。 由拥有多年一线实战经验的资深工程师亲自授课,结合最新的行业动态与实战案例,旨在全面提升你的技…

【算法进阶2-动态规划】斐波那契数列(递归调用、动态规划)、钢条切割问题(自定而下实现、自底向上、切割方案)

1 斐波那契数 2 钢条切割问题 2.1 最优解情况 2.2 钢条切割问题之自定而下实现 2.3 钢条切割问题之自底向上实现 2.4 钢条切割问题-重构解-切割方案 1 斐波那契数 # 1 子问题的重复计算 def fibonacci(n: int) -> int:"""使用递归方式计算第 n 个斐波那契数…

美国高防服务器测评

美国高防服务器通常具有出色的硬件配置和网络性能&#xff0c;以及强大的DDoS防御能力。rak小编为您整理发布美国高防服务器测评。 美国高防服务器因其地理位置和网络基础设施的优势&#xff0c;通常被认为在防御分布式拒绝服务(DDoS)攻击方面具有较高的能力。面对日益增长的网…

基于R语言遥感随机森林建模与空间预测

随机森林作为一种集成学习方法&#xff0c;在处理复杂数据分析任务中特别是遥感数据分析中表现出色。通过构建大量的决策树并引入随机性&#xff0c;随机森林在降低模型方差和过拟合风险方面具有显著优势。在训练过程中&#xff0c;使用Bootstrap抽样生成不同的训练集&#xff…

力扣: 两两交换链表中的节点

文章目录 需求代码代码解释结尾 需求 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;…

工厂模式与策略模式:理解与应用

工厂模式与策略模式&#xff1a;理解与应用 1. 引言2. 工厂模式简介2.1 定义2.2 特点2.3 应用场景2.4 工厂模式例子&#xff1a;咖啡制作 3. 策略模式简介3.1 定义3.2 特点3.3 应用场景3.4 策略模式例子&#xff1a;咖啡定价 4. 区别4.1 目的不同4.2 应用场景不同4.3 解决问题不…

浅谈Java Maven

一、基本介绍 Maven是Java项目的构建工具&#xff0c;通过项目对象模型&#xff08;POM&#xff09;管理项目配置信息&#xff0c;自动化构建、测试和部署过程。开发人员可定义项目结构、依赖和构建流程&#xff0c;提高开发效率和质量。本文介绍基本概念和用法&#xff0c;帮助…

【YOLOv8改进[Conv]】 感受野注意力卷积RFAConv(2024.3)| 使用RFAConv改进目标检测效果 + 含全部代码和详细修改方式

本文将进行在YOLOv8中使用 感受野注意力卷积RFAConv改进v8 的实践,助力YOLOv8目标检测效果,文中含全部代码、详细修改方式。助您轻松理解改进的方法。

时尚图像编辑

时尚图像编辑是一种应用计算机视觉和机器学习技术来改变或增强时尚摄影图像的领域。这种编辑可以包括更改服装颜色、形状或整体风格&#xff0c;以及调整模特在图像中的姿态或场景背景。 在您提到的背景中&#xff0c;现有的时尚图像编辑方法依赖于如分割器和关键点提取器这样…

FreeRTOS学习笔记>中断管理

1. 异常的定义与分类 异常&#xff1a;是指任何导致处理器脱离正常执行路径、并转向执行特定代码的事件。异常如果不及时处理&#xff0c;可能导致系统错误甚至瘫痪&#xff0c;因此异常处理对于系统的稳定性和鲁棒性非常重要&#xff0c;特别是在实时系统中。异常分类&#x…

【markdown 中的文字颜色设置】按色系分类

文本颜色分类 蓝绿色系:灰色系:蓝紫色系:粉色系:绿色系:橘棕色系:语法,以天蓝色为例: <font color=skyblue>我是文字</font>我是文字 或者 替换成对应的16进制 <font color=#87CEEB>同理</font>同理 接下来是按色系分类的颜色名 蓝绿色系: …

速盾:前端cdn加速是什么意思?

前端CDN加速是指通过使用内容分发网络&#xff08;CDN&#xff09;来加速前端页面加载和内容访问的一种技术手段。CDN是一种分布式架构的网络&#xff0c;通过将内容缓存到离用户更近的服务器节点上&#xff0c;可以有效地减少网络延迟&#xff0c;并提高页面加载速度和用户体验…

Golang测试func TestXX(t *testing.T)的使用

一般Golang中的测试代码都以xxx_test.go的样式&#xff0c;在命名测试函数的时候以Testxx开头。 以下是我写的一个单元&#xff1a; package testsimport "strings"func Split(s, sep string) (res []string) {i : strings.Index(s, sep)for i > -1 {res append…

ASAM OpenX系列标准

ASAM OpenX系列标准是由德国自动化及测量系统标准协会&#xff08;ASAM&#xff09;制定的一系列标准&#xff0c;旨在推动自动驾驶仿真测试领域的发展。该系列标准涵盖了仿真测试场景的不同方面&#xff0c;为自动驾驶技术的研发、测试和验证提供了统一的规范和框架。以下是对…

Dopamine(多巴胺)越狱工具一键越狱教程:支持 iOS 15-iOS 16.6.1 设备

Dopamine&#xff08;多巴胺&#xff09;越狱工具由巨魔商店 TrollStore 的作者 opa334 联合 ellekit 开发&#xff0c;是公开的一个开源越狱工具&#xff0c;面向所有人员使用。用户可通过爱思助手“一键越狱”安装此工具进行越狱&#xff0c;操作更加便捷&#xff0c;以下是相…