# 后置路由守卫  
小常识:

**全局后置钩子** 你也可以注册全局后置钩子,然而和守卫不同的是,这些钩子不会接受 next 函数也不会改变导航本身: ```javascript router.afterEach((to, from) => { sendToAnalytics(to.fullPath) }) ``` 它们对于分析、更改页面标题、声明页面等辅助功能以及许多其他事情都很有用。 它们也反映了 navigation failures 作为第三个参数: ```javascript router.afterEach((to, from, failure) => { if (!failure) sendToAnalytics(to.fullPath) }) ``` **完整的导航解析流程** 导航被触发。 在失活的组件里调用 beforeRouteLeave 守卫。 调用全局的 beforeEach 守卫。 在重用的组件里调用 beforeRouteUpdate 守卫(2.2+)。 在路由配置里调用 beforeEnter。 解析异步路由组件。 在被激活的组件里调用 beforeRouteEnter。 调用全局的 beforeResolve 守卫(2.5+)。 导航被确认。 调用全局的 afterEach 钩子。 触发 DOM 更新。 调用 beforeRouteEnter 守卫中传给 next 的回调函数,创建好的组件实例会作为回调函数的参数传入。
 
小测试:
根据上方资料,以下关于后置路由守卫的说法不正确的是?

## 答案 router.afterEach 接受next参数 ## 选项 ### A 不会改变导航本身 ### B 接受navigation failures 作为第三个参数 ### C 后置路由守卫是异步解析执行,此时导航在所有守卫 resolve 完之前一直处于等待中