看过很多文章,大家似乎都会用路由守卫来做登陆状态的判断,或者是登录权限的控制。所以守卫的作用:当我们路由切换到一个组件里面,如果没有权限,不让进入,有权限可以进入。emmm,似乎也可以看作是路由拦截。
组件内的守卫
那,因为只用到过组件内的路由守卫,所以只有这一部分的输出😎,它由三部分组成,如下图:
参数介绍
每个守卫方法接收三个参数:(可以把参数打印出来,就可以直观理解了)
to: Route
: 即将要进入的目标路由from: Route
: 当前导航正要离开的路由next: Function
: 一定要调用该方法来 resolve 这个钩子。执行效果依赖next
方法的调用参数。
易错点
刚开始使用的时候,犯的第一个错就是在beforeRouteEnter
里使用this
,所以一定一定要注意!!!
不过,就这个问题,官方也给了一种解决方案:可以通过传一个回调给 next
来访问组件实例。在导航被确认的时候执行回调,并且把组件实例作为回调方法的参数。如下图: