Это вопрос, чтобы проверить правильность моего мышления и реализации.
Я работаю над приложением Angular, где хочу использовать два базовых макета. Простой, с заголовком, содержимым и нижним колонтитулом. Второй расширяет простой макет боковыми панелями, постоянными слева и скользящей боковой панелью справа. Чтобы избежать строк кода для соответствующей корректировки макета, я подумал, что их разделение может быть быстрее, проще и потребует меньше кода.
Вот так я настроил routes.ts:
export const routes = [
{
path: '',
component: LayoutSimpleComponent,
children: [
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', loadChildren: './home/home.module#HomeModule' },
{ path: 'library', loadChildren: './library/library.module#LibraryModule' },
{ path: 'login', component: LoginComponent }
]
},
// Layout with sidebars
{
path: '',
component: LayoutSidebarsComponent,
children: [
{ path: 'products', loadChildren: './products/products.module#ProductsModule' },
{ path: 'forum', loadChildren: './forum/forum.module#ForumModule' }
]
},
{ path: '**', redirectTo: 'home' }
]
Как видите, оба компонента макета используют path: '' в качестве сопоставителя, поэтому фактическая маршрутизация зависит от их дочерних элементов. И все работает У меня просто странное ощущение, что это не лучшая практика.
Могут ли возникнуть проблемы при использовании этой конфигурации? Есть ли лучшее решение? Пока я ничего не смог найти об этом.
Я не вижу никаких недостатков, кроме удобочитаемости. Возможно, что-то, что я узнал от Деборы Курата, также подойдет. youtu.be/LaIAHOSKHCQ?t=2m47s (с 2:47 до 5-й минуты) В основном вложение двух или нескольких роутеров.
Спасибо я посмотрю





Я использовал этот подход в паре мест, и пока никаких проблем не возникло.