Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

在组件中,我们使用了beforeRouteEnter来发送请求,通过请求的返回来判断是否允许进入页面。

与此同时我们也做了路由拦截,通过router.beforeEach来进行拦截,如果未登录,则弹去登录页。

现在问题是,如果直接在地址栏输入组件对应的url,那么尽管被拦截跳到登录页了,beforeRouteEnter中的请求依然会发出去,这种问题要怎么办?期望的目标是,路由拦截时,beforeRouteEnter中的函数都不执行,请求也不发送。

经过一番实践,发现beforeRouteEnter的触发时机非常的早,比根实例的 beforeCreate还要早,因此我们现在找不到任何一个钩子来拦截。目前唯一想到的方法,是在main.js中去用location.href来拦截,这对于我们来说,不是一个非常优雅的方案。因此希望得到各位同仁的帮助。

PS:我们说的不能拦截不是说,路由不能拦下来,不让它跳转。我们是可以拦下来的,通过很多种方式。但beforeRouteEnter中经常有一些请求,拦下路由,并不能阻止这些请求的发送,因为beforeRouteEnter的触发时机非常地早。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
445 views
Welcome To Ask or Share your Answers For Others

1 Answer

不是有beforeEach 钩子 ?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...