Angular 路由 ( 二 )

我不是女神ヾ 2022-05-24 12:43 439阅读 0赞

Angular 路由 ( 二 )

应用有一个配置过的路由器。 外壳组件中有一个RouterOutlet,它能显示路由器所生成的视图。它还有一些 RouterLink,用户可以点击它们,来通过路由器进行导航。

1. < Base >

大多数带路由的应用都要在index.html<head> 标签下先添加一个 <base> 元素,来告诉路由器该如何 合成导航 用的URL。这样 pushState 才能正常工作。 当引用 CSS 文件、脚本和图片时,浏览器会用 的值作为相对URL 的前缀。

经过ng build命令编译过后,只剩下一个index.html此时,其中就含有<base> 标签。

2. 路由库

路由不是核心部分,需要导入对应的路由模块包,在配置路由信息时导入。

  1. import { RouterModule, Routes } from '@angular/router';

3. 配置

使得路由和组件一一对应。即某一个路由要对应显示的组件。app.module.ts 文件下

  1. @NgModule({
  2. imports: [
  3. RouterModule.forRoot(
  4. [
  5. { path: 'crisis-center', component: CrisisListComponent },
  6. { path: 'hero/:id', component: HeroDetailComponent },
  7. {
  8. path: 'heroes',
  9. component: HeroListComponent,
  10. data: { title: 'Heroes List' }
  11. },
  12. { path: '',
  13. redirectTo: '/heroes',
  14. pathMatch: 'full'
  15. },
  16. { path: '**', component: PageNotFoundComponent }
  17. ],
  18. { enableTracing: true } // <-- debugging purposes only
  19. )
  20. // other imports here
  21. ],
  22. ...
  23. })

hero 路由携带id信息。
heroes 路由的data中携带静态可读数据
redirect 表示重定向,将默认路径‘’重定向到heroes路径下
任意匹配路径,可以匹配404

  1. 先匹配者优先的策略,具体路由应该放在通用路由的前面。
  2. path 不能以斜杠(/)开头

4. 路由占位符

  1. <router-outlet></router-outlet>

5. 导航到占位符

  1. <a routerLink="/heroes" routerLinkActive="active">Heroes</a>

当处于当前页面中时,routerLinkActive发挥作用,给a标签增加 active

6. 路由状态

任意激活路由 开始向上或向下遍历路由树的一种方式,以获得关于 父、子、兄弟路由 的信息。

7. 激活的路由

当前页面显示在路由占位符上面的组件。
可以通过注入 ActivatedRoute 的路由获取url传递的信息。

发表评论

表情:
评论列表 (有 0 条评论,439人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Angular2 ---

    审查路由器配置 你把大量的精力投入到在一系列路由模块文件里配置路由器上,并且小心的以合适的顺序列出它们。 这些路由是否真的如同你预想的那样执行了? 路

    相关 Angular (一)

    Angular 路由一 描述路由 Angular 是一个单页面的应用所有的页面展示都在本页面内完成。 我们实现页面局部刷新 展示一个班级的学生信息时, 1.