使用 Angular 18,我有一个工作区,其中有一个 lib-one。我想知道如何在 lib-one 中应用路由?可以吗?
在 lib-one 中,我有两个组件:组件 a 和组件 b。我必须在路线中分别在它们之间导航:
/一个
/b
如何在图书馆内执行此操作?
是的,您可以在 Angular 库(例如 lib-one)中定义和应用路由。 Angular 中的库可以包含路由,允许在该库中定义的组件之间进行导航。
第1步:在lib-one中定义路由模块
为您的组件定义路线。
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { ComponentA } from './component-a/component-a.component';
import { ComponentB } from './component-b/component-b.component';
const routes: Routes = [
{ path: 'a', component: ComponentA },
{ path: 'b', component: ComponentB },
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class LibOneRoutingModule {}
**第 2 步:更新 lib-one 模块 **
在库模块的导入中包含 LibOneRoutingModule。
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ComponentA } from './component-a/component-a.component';
import { ComponentB } from './component-b/component-b.component';
import { LibOneRoutingModule } from './lib-one-routing.module';
@NgModule({
declarations: [
ComponentA,
ComponentB,
],
imports: [
CommonModule,
LibOneRoutingModule, // Add routing module here
],
exports: [
ComponentA,
ComponentB,
],
})
export class LibOneModule {}
第 3 步:配置父应用程序
要使用库中定义的路由,请将库的路由模块添加为父应用程序的AppRoutingModule
中的延迟加载模块import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
const routes: Routes = [
{
path: '',
redirectTo: '/a', // Default route, if required
pathMatch: 'full',
},
{
path: 'lib-one',
loadChildren: () =>
import('lib-one').then((m) => m.LibOneModule), // Lazy load the library
},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
})
export class AppRoutingModule {}
第 4 步:在路线之间导航
导航到 /lib-one/a 找到 componentA 导航到 /lib-one/b 获取 componentB