在开发单页面应用(SPA)时,Angular 2的路由配置扮演着至关重要的角色。它允许我们定义不同的视图和组件,并控制它们在不同URL路径下的显示。本文将带您从Angular 2路由的基础知识开始,逐步深入到实战案例的解析。
Angular 2路由基础
路由模块
首先,您需要在Angular 2项目中引入@angular/router模块。这个模块包含了所有与路由相关的功能。
import { RouterModule } from '@angular/router';
@NgModule({
imports: [
RouterModule.forRoot(routes)
],
...
})
export class AppModule { }
路由配置
路由配置是一个路由数组,定义了路径与组件的映射关系。
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'about', component: AboutComponent },
{ path: 'contact', component: ContactComponent },
{ path: '**', component: NotFoundComponent }
];
path:路由的URL路径。component:当路由匹配时,要加载的组件。redirectTo:如果路径不存在,自动重定向到指定的路由。pathMatch:用于精确匹配路径,例如匹配/。
路由参数
您可以使用路由参数来传递动态值。
const routes: Routes = [
{ path: 'user/:id', component: UserComponent }
];
在这个例子中,:id是一个参数,可以用于在组件中获取用户ID。
实战案例:图书管理系统
以下是一个使用Angular 2路由的实战案例,实现一个简单的图书管理系统。
步骤1:创建组件
首先,创建三个组件:BookListComponent、BookDetailComponent和BookAddComponent。
步骤2:配置路由
接下来,配置路由以映射到这些组件。
const routes: Routes = [
{ path: '', component: BookListComponent },
{ path: 'book/:id', component: BookDetailComponent },
{ path: 'add', component: BookAddComponent }
];
步骤3:使用路由
在BookListComponent中,您可以列出所有图书,并使用<routerLink>来跳转到BookDetailComponent。
<ul>
<li *ngFor="let book of books">
<routerLink [routerLinkParams]="{ id: book.id }">{{ book.title }}</routerLink>
</li>
</ul>
在BookDetailComponent中,您可以获取图书ID并显示详细信息。
import { ActivatedRoute } from '@angular/router';
@Component({
...
inputs: ['id']
})
export class BookDetailComponent {
constructor(private route: ActivatedRoute) {}
get id() {
return this.route.snapshot.params['id'];
}
}
总结
通过本文,您已经掌握了Angular 2路由配置的基础知识,并了解了一个实战案例。在实际项目中,您可以根据需求灵活运用路由,实现丰富的页面交互效果。
