vue 监听路由变化

本文探讨了如何在Vue应用中使用watch、beforeEach路由守卫和beforEach方法实现页面权限检测,当用户无权访问时,通过定时关闭窗口或定向至错误页面。详细讲解了在不同场景下的实现细节和逻辑。
摘要由CSDN通过智能技术生成

如果在某一个页面做监听

watch:{
	$route(to,from){
		let topath = to.path;
		let formPath=from.path;
		如果此时再通过接口获取到登陆用户有多少页面权限,就直接判断。
		没有权限就可以
		setTimeOut(function(){
				window.open("","_self").colse();
			},2000)
			//或者没有权限直接去固定的页面
			this.$router.push({path:"/errorPath"});
			
		}
	}
}

如果在最外层做监听,在app.vue里面

created(){
	this.$router.beforeEach((to, from, next) => {
	   	if(to.path!='/XXXX'){
	   		this.$router.push({path:"/errorPath"});
	   		next();
		}
		next();
});
}

//如果在路由里面做路由守卫
//这里有两个参数,一个是errorPath,这个表示页面加载失败,或者没权限的跳转页面,
//一个是routeList这个可以是后端通过权限返回的页面列表,
//先进入errorPath可以避免权限没有一直进入不到页面的问题

router.beforEach(async(to,from,next)=>{
		if(to.path=='errorPath'){
			next();
		}else{
			if(routeList.indexOf(to.path)<-1){
				next();
			}else{
				next({path:'errorPath'})
			}
			
		}
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值