写在router文件夹中的js文件中
前置守卫(限制一些页面有token才可以访问)
//to跳到那个页面 from 从那个页面跳转过来的 next(方法)决定是否能跳转到那个页面
当访问一个需要有token的页面需要判断(不是想跳到那个页面就跳到那个页面)
router.beforeEach((to,from,next)=>{
//任何页面的访问都要先经过这个beforeEach
if(to.path==='/my'&&!this.$store.state.userInfo.token){
//当进入我的页面,但是没有token,代表没有等录,跳转到登录页
next('/login') 让它跳转到登录页
}else{
//如果访问其他页面,不论有没有token都让访问
next()
}
})
作用:做页面的访问限制(比如有些页面需要登录有token,才让它跳转到那个页面)
//后置守卫
//一般就是用来获取那个页面被访问完了
//就是用来做那个页面访问的次数(大数据)
router.afterEach((to,from)=>{
})
前置守卫的用法实例
注意有可能用不到from但是在()中to,from,next都还是需要都写上的,写上不用也不报错
在next()中可以规定跳到那个页面,next如果放到if判断中的话,就是让它跳到它next()中写的那个页面
next()中啥也不写,就代表,想跳到那个页面就跳到那个页面(也就是to.path)用户自己想跳的页面
next(false)的话就代码不跳转页面,代码用户点击跳转页面,还是不跳转(还让用户处于当前页面不跳转)