uni-app全局监听页面路由变化

该文章介绍了如何在uni-app中通过App.vue配置全局监听页面路由变化。通过读取pages.json文件生成白名单列表,然后使用watch对象监听$route,根据hasPermission函数判断路径是否在白名单内,决定是否允许跳转。如果不允许,程序将重定向到首页。

uni-app全局监听页面路由变化

  • 在App.vue文件中配置以下代码,具体注释代码行中已标注。
<script>
	import { watch } from 'vue'
	import { pages } from '/pages.json'
	// 白名单列表(手动写或者引入pages.json进行循环遍历创建)
	const whiteList = ['/']
	// 遍历获取页面路径加入白名单
	for(let item of pages) {
		whiteList.push(`/${item.path}`)
	}
	// 判断是否满足跳转条件
	const hasPermission = (url)=> {
		// 在白名单中,直接返回true跳转
		if (whiteList.indexOf(url) !== -1) {
			return true;
		}
		return false;
	}
	export default {
		onLaunch: function() {
			console.log('App Launch')
		},
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},
		watch: {
			$route(to, from) {
				if(hasPermission(to.path)) {
					console.log('直接通过')
				} else {
					console.log('不通过,做相关处理(如跳转首页)');
					uni.redirectTo({
						url:'/pages/index/index'
					})
				}
			}
		}
	}
</script>

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值