面试题答案
一键面试- 导入必要的模块:
- 在Angular项目中,要配置路由模块,需要导入
RouterModule
。通常在一个模块文件(比如app.module.ts
)中,先从@angular/router
导入RouterModule
。示例如下:
import { RouterModule } from '@angular/router';
- 在Angular项目中,要配置路由模块,需要导入
- 定义路由数组:
- 路由数组是一个包含路由配置对象的数组。每个路由配置对象通常包含
path
(路径)和component
(对应的组件)等属性。例如,假设我们有HomeComponent
和AboutComponent
两个组件,定义路由数组如下:
const routes: Routes = [ { path: 'home', component: HomeComponent }, { path: 'about', component: AboutComponent } ];
- 这里的
Routes
类型也需要从@angular/router
导入。完整导入如下:
import { Routes } from '@angular/router';
- 路由数组是一个包含路由配置对象的数组。每个路由配置对象通常包含
- 在模块的
@NgModule
装饰器中进行相关配置:- 在模块的
@NgModule
装饰器的imports
数组中,使用RouterModule.forRoot(routes)
(如果是根模块)或RouterModule.forChild(routes)
(如果是子模块)来配置路由。对于根模块app.module.ts
的示例如下:
@NgModule({ imports: [ RouterModule.forRoot(routes) ], exports: [RouterModule] }) export class AppModule {}
- 这里的
exports
数组导出RouterModule
,以便其他组件可以使用路由相关的指令(如router - outlet
,routerLink
等)。
- 在模块的
完整示例
假设项目结构如下:
src/
├── app/
│ ├── app.component.ts
│ ├── app.module.ts
│ ├── home/
│ │ ├── home.component.ts
│ ├── about/
│ │ ├── about.component.ts
home.component.ts
import { Component } from '@angular/core'; @Component({ selector: 'app - home', templateUrl: './home.component.html', styleUrls: ['./home.component.css'] }) export class HomeComponent {}
about.component.ts
import { Component } from '@angular/core'; @Component({ selector: 'app - about', templateUrl: './about.component.html', styleUrls: ['./about.component.css'] }) export class AboutComponent {}
app.module.ts
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform - browser'; import { RouterModule, Routes } from '@angular/router'; import { AppComponent } from './app.component'; import { HomeComponent } from './home/home.component'; import { AboutComponent } from './about/about.component'; const routes: Routes = [ { path: 'home', component: HomeComponent }, { path: 'about', component: AboutComponent } ]; @NgModule({ declarations: [ AppComponent, HomeComponent, AboutComponent ], imports: [ BrowserModule, RouterModule.forRoot(routes) ], exports: [RouterModule], providers: [], bootstrap: [AppComponent] }) export class AppModule {}
app.component.html
<a routerLink="home">Home</a> <a routerLink="about">About</a> <router - outlet></router - outlet>
这样就完成了在Angular模块中正确配置路由模块。