uniapp如何实现路由守卫、路由拦截,权限引导

因为uniapp路由的实现方式和以往vue开发的router路由时不太一样,故官方这么说:

经过一番网上冲浪发现,有两种方式可以实现,

第一种方式:

 

在上述代码中,我们通过监听beforeRouterEnter事件来实现路由守卫。在回调函数中,你可以根据实际需求进行相应的验证和逻辑操作。如果需要继续导航到目标页面,调用next()方法;如果需要取消导航,可以选择不调用next()方法。

也就是说在你要跳转页面时候,触发这个事件,然后回调里面(next())写navigateTo

第二种是通过uni提供的拦截器(文档)实现:

新建interceptor.js

let needLogin = ["/pages/tab/index",
]let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];list.forEach(item => { //用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器console.log(item,'router list item')uni.addInterceptor(item, {invoke(e) { // 调用前拦截//获取用户的tokenconsole.log(e,'routerjs invoke')const token = localStorage.getItem('token')//获取当前页面路径(即url去掉"?"和"?"后的参数)console.log(token,'router index token')const url = e.url.split('?')[0]console.log(url,'router index url')console.log(needLogin.includes(url))//判断要打开的页面是否需要验证登录if (needLogin.includes(url) && token == '') {uni.showToast({title: '该页面需要登录才能访问,请先登录',icon: 'none'})uni.navigateTo({url: "/pages/login/login"})return false}return true},fail(err) { // 失败回调拦截 console.log(err);},})
})

然后在main.js中引入

你可以参考插件市场,拦截器应用示例:图片选择api时无权限,引导用户快捷打开系统设置:拦截器应用示例 — 图片选择 - DCloud 插件市场 

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

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

相关文章

功能测试自动化测试流程

1概述 本流程是描述软件功能自动化测试过程中的步骤、内容与方法,明确各阶段的职责、活动与产出物。 2流程活动图 3活动说明 3.1测试计划(可选) 与以前的测试计划过程一致,只是在原来的测试计划中,添加对项目实施自动…

STM32f103入门(12)USART串口信息发送+接收

USART 介绍串口发送使用工具初始化发送数据接收数据 介绍 电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种: TTL电平:3.3V或5V表示1,0V表示0 RS232电平&…

通过uni.chooseImage返回的临时路径转为base64

uniapp官方API文档:https://uniapp.dcloud.net.cn/api/media/image.html#chooseimage 代码在后面 chooseimage的succes函数中的res.tempFilePaths,是图片的一个临时路径,没法直接传给后端接口使用,且接口需要的是base64格式的 ge…

MySQL数据库详解 五:用户管理

文章目录 1. 数据库的用户管理1.1 新建用户1.2 重命名用户1.3 删除用户1.4 修改用户密码1.5 忘记用户密码的解决方法1.6 数据库用户授权1.6.1 授权用户权限类别1.6.2 添加权限1.6.2 撤销权限 2. mysql命令 1. 数据库的用户管理 1.1 新建用户 create user 用户名来源地址 [ide…

合肥先进光源国家重大科技基础设施项目及配套工程启动会纪念

合肥先进光源国家重大科技基础设施项目及配套工程启动会纪念 卡西莫多 合肥长丰岗集里 肥鸭从此别泥塘 先平场地设围栏 进而工地筑基忙 光阴似箭指日争 源流汇智山水长 国器西北扩新地 家校又添新区园 重器托举有群力 大步穿梭两地间 科教兴邦大国策 技术盈身坦荡行…

海外网红营销安全指南:品牌必须遵守的10大法律法规

随着互联网的普及和社交媒体的崛起,品牌们越来越倾向于与海外网红合作,以扩大其在全球市场的影响力。然而,这一战略并非没有风险,因为在不同国家和地区,存在着各种各样的法律法规,可能会影响品牌与海外网红…

CoreData 在新建或更新托管对象中途发生错误时如何恢复如初?

问题现象 在 CoreData 支持的 App 中,当我们新建或更新托管对象到一半突然出现错误时,应该禁止任何已发生的改变被写入内存或数据库中。不过,有时仍会出现始料未及的“意外”: 从上面的演示可以看到:即使在 Item 对象新建和更新途中出现错误后不执行后续的保存操作,但界…

如何设置代理ip服务器地址

目录 前言 一、使用HTTP代理服务器 1. Python代码 2. Java代码 二、使用SOCKS代理服务器 1. Python代码 2. Java代码 三、使用代理池 1. Python代码 2. Java代码 总结 前言 代理服务器是一种可以隐藏真实IP地址并且保护用户隐私的工具。在某些情况下,比…

oracle数据库被锁定如何解除

一、使用以下SQL语句查询Oracle被锁定的表: SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects b, v$session sWHERE l.session_id s.sid AND l.object_id b.object_id;这个语句将返回被锁定的表的名称、机器名、会话ID和序列…

服务器时间正常,docker容器日志显示时间少了8小时

问题: 项目中docker部署的项目容器日志时间少了8小时。解决: 在Dockerfile添加下面语句: # 设置时区 ENV TZ"Asia/Shanghai"

Spark 框架概述

目录 一、Spark 是什么 1.1 统一分析引擎? 二、Spark 风雨十年 ​三、Spark VS Hadoop(MapReduce) 3.1 面试题:Hadoop 的基于进程的计算和 Spark 基于线程方式优缺点? 四、Spark 四大特点 ​4.1 速度快 4.2 易于使用 4.3 通用性…

如何将安防视频监控系统/视频云存储EasyCVR平台推流到公网直播间?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、…

脸鉴AI开放平台:轻松上手的人工智能算法

序言 一、提升开发效率工具 1.1封装view窗口 1.2封装常用功能接口 1.3提供基础接口代码块 二、使用介绍 2.1 注册&登录 2.2 新建应用 2.3 下载应用 2.4 安装包介绍 2.5 demo项目 2.6 配置demo 2.7 运行demo 三、使用结果 3.1 摄像头采集人脸添加模板 3.2 实时画面1:N人脸检…

JS Ajax 封装

ajax 封装 一、 什么是Ajax?二、 Ajax的优缺点?2.1 优点2.2 缺点 三、 Ajax的使用3.1 状态码3.2 xhr的基本使用3.3 ajax原生封装:3.3.1 触发GET请求:3.3.2 调用POST请求: 四、Ajax的约束 一、 什么是Ajax? …

SpringMVC之JSON返回及异常处理

目录 JSON处理 导入依赖 配置Spring-mvc.xml ResponseBody注解使用 测试 目录 JSON处理 导入依赖 配置Spring-mvc.xml ResponseBody注解使用 测试 Jackson 定义 用法 常用注解 统一异常处理 为什么要全局异常处理? 异常处理思路 SpringMVC异常分类 综…

main函数中两个参数的作用

一般我们在使用C语言时不太用到main函数自带的参数,因此最常见的main函数就像下面这样。 int main() {...... }上面这种main函数是省略了其形参的,C语言中规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv,其中&…

CAN - 基础

CAN 基础 概念分类特点物理层收发器线与编码方式通信方式采样点/位 常见故障 数据链路层CAN控制器数据帧分类数据帧格式数据帧DBC解析CRC校验远程帧 总线竞争与仲裁非破坏性仲裁机制 节点状态与错误处理机制节点状态错误处理机制错误帧 概念 分类 CANCAN FD高速CAN低俗容错CA…

更新至2021年,互联网相关指标数据

更新至2021年,互联网相关指标数据 1、来源:国家统计J和各省NJ 2、指标:域名数、网站数、网页数、互联网宽带接入端口、互联网宽带接入用户、城市宽带接入用户、移动互联网用户、移动互联网接入流量、联网上网人数 3、范围:31省…

git vscode

01:工作区 **02:暂存区 git add . 3:本地库 git commit -m ’ 4:远程库 git push example 点击箭头之后

【小黑送书—第二期】>>《用户画像:平台构建与业务实践》

在大数据时代,如何有效地挖掘数据价值并通过画像数据进行呈现,如何基于画像数据构建平台功能并提高业务产出,是值得各类公司和业务人员思考并付诸实践的事情。 通过画像释放大数据价值。大数据时代不缺少数据,而是缺乏挖掘数据价值…