## 一、路由事件
>[info] 在每次导航中,Router都会通过Router.events属性发布一些导航事件。这些事件的范围涵盖了从开始导航到结束导航之间的很多时间点。
>
| 路由器事件 | 说明 |
| --- | --- |
| NavigationStart | 本事件会在路由开始时触发 |
| RouteConfigLoadStart | 本事件会在Router惰性加载某个路由配置之前触发。 |
| RouteConfigLoadEnd |本事件会在惰性加载了某个路由后触发。 |
| RoutesRecognized | 本事件会在路由器解析完 URL,并识别出了相应的路由时触发 |
| GuardsCheckStart | 本事件会在路由器开始 Guard 阶段之前触发。 |
|ChildActivationStart |本事件会在路由器开始激活路由的子路由时触发。 |
| ActivationStart | 本事件会在路由器开始激活某个路由时触发。 |
| GuardsCheckEnd |本事件会在路由器成功完成了 Guard 阶段时触发。|
| ResolveStart |本事件会在 Router 开始解析(Resolve)阶段时触发。|
| ResolveEnd |本事件会在路由器成功完成了路由的解析(Resolve)阶段时触发。 |
| ChildActivationEnd |本事件会在路由器激活了路由的子路由时触发。 |
| ActivationEnd|本事件会在路由器激活了某个路由时触发。 |
| NavigationEnd | 本事件会在导航成功结束之后触发。 |
| NavigationCancel |本事件会在导航被取消之后触发。 这可能是因为在导航期间某个路由守卫返回了 false。 |
| NavigationError | 这个事件会在导航由于意料之外的错误而失败时触发。 |
| Scroll | 本事件代表一个滚动事件。 |
## 二、监听路由事件
```
import {Router,NavigationStart} from "@angular/router";
import { filter } from 'rxjs/operators';
//引入Router模块,引入NavigationStart路由开始事件
//引入filter 模块
constructor(router:Router) { }
//监听路由开始事件
ngOnInit(){
//监听路由事件
this.router.events.pipe(
filter(e => e instanceof NavigationStart)
).subscribe(e =>{
console.log('路由开始了')
})
}
```
- 目录结构
- 架构
- 指令
- 数据绑定
- 结构性指令
- 属性型指令
- 自定义指令
- 模板引用变量
- 属性绑定
- 事件绑定
- 组件
- 组件交互
- 管道
- 自定义管道
- 动态组件
- 变量检测机制
- 组件生命周期
- 路由
- 路由配置
- 路由导航
- 路由传值
- 父子路由
- 路由事件
- 顶级路由和特征路由
- 多重路由
- 路由守卫
- 路由守卫-简单理解
- 路由惰性加载
- 路由预加载
- 路由动画
- 网络请求
- GET请求
- POST请求
- JSOP请求
- 封装的http请求
- http拦截器
- 表单
- 响应式表单
- 驱动式表单
- CLI命令
- 启动应用
- 创建项目
- 创建组件
- 创建服务
- 创建路由守卫
- 创建特征模块
- 创建自定义指令
- 创建自定义管道
- 相关概念
- 急性加载
- 惰性加载
- 特征模块
- 常见问题
- 全局的Angular CLI大于本地的Angular CLI
- 包体优化