是什么
路由:就是从一个页面跳到另一个页面,当用户输入一个url跳到一个页面,之后用户点击某控件或者输入另一个url之后就跳到另一个页面,实际上,就是页面的跳来跳去。然而,Angular是组件化应用,所以Angular的页面就是组件,跳到页面,其实就是实例化组件渲染到页面上。总的来说,就是url与组件的对应关系。
优缺点
相对于之前直接配置url的方式相对复杂了一些。
组成
Angular路由有两种路由策略,一种是HashLocationStrategy,另一种是PathLocationStrategy。
HashLocationStrategy
浏览器向服务器服务器发送请求时不会带上hash部分。例如浏览器发送http://localhost:4200/#/login到服务器,真正发送的只有http://localhost;4200/到服务器,Angular在获取首页后会根据hash的内容去匹配路由配置项再去渲染响应的组件。
PathLocationStrategy
Angualr默认路由策略。与上者不同的地方在于浏览器会将URL原封不动地发送给服务器,例如http://localhost:4200/login会直接发送给服务器,由服务器进行渲染。
基本用法
1.定义路由配置
2.创建根路由模块。
3.添加RouterOutlet指令。
工作流程
1.用户在浏览器上输入URL后,Angular将获取改URL并将其解析生成一个URLTree实例。
2.其次,在路由配置中寻找并激活与UrlTree实例匹配的配置项。
3.再次,为配置项中指定的组件创建实例。
4.最后,将该组件渲染于路由组件的模板中<router-outlet>指令所在位置。