Я работаю над SPA, используя angular 9, и я хочу, чтобы у многих компонентов был /admin
в качестве родительского маршрута. У меня есть следующая маршрутизация
const routes: Routes = [
{
path: '',
children: [
{
path: 'admin',
component: AdminHomeComponent,
children: [
{
path: 'platforms',
component: PlatformListComponent
},
{
path: 'platform/:id',
component: PlatformCrudComponent
},
{
path: 'projects',
component: ProjectListComponent
},
{
path: 'project/:id',
component: ProjectCrudComponent
},
]
},
]
},
];
На данный момент шаблон AdminHomeComponent
содержит только розетку маршрутизатора и две ссылки для platforms
и projects
<a [routerLink]="['platforms']">Platforms</a>
<a [routerLink]="['projects']">Projects</a>
<router-outlet></router-outlet>
Мне действительно нужно иметь router-outlet
в AdminHomeComponent
или я могу просто использовать следующую конфигурацию маршрута и удалить <router-outlet>
из AdminHomeComponent
?
const routes: Routes = [
{
path: '',
redirectTo: '/admin',
pathMatch: 'full',
// component: HomeComponent,
},
{
path: 'admin',
component: AdminHomeComponent
},
{
path: 'admin/platforms',
component: PlatformListComponent
},
{
path: 'admin/platform/:id',
component: PlatformCrudComponent
},
{
path: 'admin/projects',
component: ProjectListComponent
},
{
path: 'admin/project/:id',
component: ProjectCrudComponent
},
];
AdminHomeComponent
Используется в данный момент только для того, чтобы показать эти 2 ссылки, о которых я упоминал ранее
Какой правильный подход?
С первой понятно, что она вложенная, и я могу добавить больше компонентов в будущем на AdminHomeComponent
Со второй, объект маршрутизации более «плоский».
Мне действительно важно иметь легкий для понимания код для моих коллег, и я хочу следовать наилучшей возможной практике.