10 Angular 中的路由

10.1 创建静态路由

1)找到 app-routing.module.ts 配置路由
2)引入组件

import { HomeComponent } from './home/home.component'; 
import { NewsComponent } from './news/news.component';
 import { NewscontentComponent } from './newscontent/newscontent.component';

3)配置路由

const routes: Routes = [ 
    {path: 'home', component: HomeComponent}, 
    {path: 'news', component: NewsComponent}, 
    {path: 'newscontent/:id', component: NewscontentComponent}, 
    { path: '**', redirectTo: '/home'} 
];

4)找到 app.component.html 根组件模板,配置 router-outlet 显示动态加载的路由

<h1>
 <a routerLink="/home">首页</a> 
<a routerLink="/news">新闻</a> 
</h1>
<router-outlet></router-outlet>

10.2 Angular routerLink 跳转页面 默认路 由

<a routerLink="/home">首页</a> <a routerLink="/news">新闻</a>
//匹配不到路由的时候加载的组件 或者跳转的路由 
{ 
path: '**', /*任意的路由*/ 
// component:HomeComponent 
redirectTo:'home' 
}

10.3 Angular routerLinkActive 设 置 routerLink 默认选中路由

<h1> 
    <a routerLink="/home" routerLinkActive="active">首页</a> 
    <a routerLink="/news" routerLinkActive="active">新闻</a> 
</h1>
<h1> 
    <a [routerLink]="[ '/home' ]" routerLinkActive="active">首页</a> 
    <a [routerLink]="[ '/news' ]" routerLinkActive="active">新闻</a> 
</h1>
.active{ color:red; }

10.4 静态路由传值

Get传值
1、跳转

  <a [routerLink]="[ '/newscontent']" [queryParams]="{aid:key}">{{ key }} --- {{ item }}</a>

2、接收

  import { ActivatedRoute } from '@angular/router';
  constructor(public route:ActivatedRoute) { }

  ngOnInit() {
    // console.log(this.route)
    this.route.queryParams.subscribe((data)=>{
      console.log(data)
    })
  }

10.5 动态路由

1.配置动态路由

const routes: Routes = [ 
    {path: 'home', component: HomeComponent}, 
    {path: 'news', component: NewsComponent}, 
    {path: 'newscontent/:id', component: NewscontentComponent}, 
    { path: '', redirectTo: '/home', pathMatch: 'full' }
];

2.跳转传值

<a [routerLink]="[ '/newscontent/',aid]">跳转到详情</a> 
<a routerLink="/newscontent/{{aid}}">跳转到详情</a>

3.获取动态路由的值

import { ActivatedRoute} from '@angular/router';
    constructor( private route: ActivatedRoute) {
}
ngOnInit() { 
    console.log(this.route.params); 
    this.route.params.subscribe(data=>this.id=data.id); 
}

10.6 动态路由的JS 跳转

  1. 引入
import { Router } from '@angular/router';

2.初始化

export class HomeComponent implements OnInit { constructor(private router: Router) {
}
    ngOnInit() { }
    goNews(){ 
        // this.router.navigate(['/news', hero.id]);
        this.router.navigate(['/news']);//静态
    }
}

3.路由跳转

this.router.navigate(['/news', hero.id]); //动态

10.7 路由 get 传值 js 跳转

  1. 引入 NavigationExtras
import { Router ,NavigationExtras} from '@angular/router';

2.定义一个 goNewsContent 方法执行跳转,用 NavigationExtras 配置传参。

goNewsContent(){
    let navigationExtras: NavigationExtras = { 
        queryParams: { 'session_id': '123' }, 
        fragment: 'anchor' 
    };
this.router.navigate(['/news'],navigationExtras);
}

3.获取 get 传值

constructor(private route: ActivatedRoute) { console.log(this.route.queryParams); }

10.8 父子路由

  1. 创建组件引入组件
import { NewsaddComponent } from './components/newsadd/newsadd.component'; 
import { NewslistComponent } from './components/newslist/newslist.component';
  1. 配置路由
{
      path: 'news', component:NewsComponent,
      children: [
            { path:'newslist',component:NewslistComponent }, 
            { path:'newsadd', component:NewsaddComponent},
            {path:'**', redirectTo: 'newslist'}
      ]
}
  1. 父组件中定义router-outlet
    想在父组件哪里用就在哪里调用
<router-outlet></router-outlet>
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、SPA的概念 首先明确一个概念,SPA,全称为Single Page Application单页应用,一个单页...
    耦耦阅读 6,114评论 0赞 3
  • 路由要解决的核心问题是通过建立URL和页面的对应关系,使得不同的页面可以用不同的URL表示。在angular中,页...
    oWSQo阅读 1,421评论 0赞 1
  • 因工作需要学习angular ,特此总结一下~ 一、angular安装 1、安装前准备工作:1.1、安装 node...
    johnnie_wang阅读 960评论 1赞 3
  • 摘要:在本教程中,Ahmed Bouchefra 介绍了angular路由器(router),以及如何使用它创建客...
    哈维尔23456阅读 3,458评论 0赞 3
  • 忘忧怡情百花中, 香染雪霞烦恼空。 春露沾濡芳草叶, 夏花楚楚少女风。 博雅•李雪霞 忘忧草花语——伟大的母亲,忘...
    姜冠阅读 267评论 0赞 2

友情链接更多精彩内容