1. 全局前置守卫:在每次路由切换前被调用;用来进行一些全局的前置验证,例如检查用户是否已登录,是否有权限访问某个页面等;
如果在全局前置守卫中调用next()函数,则路由会继续进行切换;如果调用了next(false)或者不调用next(),则路由切换会被中断。
2. 全局解析守卫:在全局前置守卫之后被调用;确保在路由切换之前已经加载完相关的异步组件,防止页面渲染时出现空白。
3. 组件内的守卫:是在组件级别进行的;分别对应着组件的进入前、更新前和离开前的情况;
(进入前)beforeRouteEnter:无法通过this访问到组件实例,需要使用一个回调函数来访问到组件实例。
(更新前)beforeRouteUpdate:用来响应路由参数的变化,更新组件的数据或执行其他操作
(离开前)beforeRouteLeave:用来进行一些确认操作,例如提示用户保存未保存的数据或执行清理操作。