Angular маршрутизация, необходимо ли иметь маршрутизатор-выход в родительском компоненте, когда я использую дочерние маршруты? - PullRequest
2 голосов
/ 23 апреля 2020

Я работаю над 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 Со второй, объект маршрутизации более «плоский».

Мне действительно важно иметь легкий для понимания код для моих коллег, и я хочу следовать наилучшей возможной практике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...