Правильный способ сделать это с функциональными модулями, если у вас есть отдельные функции, вы можете создать отдельный модуль для каждого из них.Это дает вам больше гибкости, чистый код и отдельные проблемы, а также улучшают производительность, потому что вы можете лениво загружать модули.Проверьте документацию здесь: https://angular.io/guide/feature-modules.
Например, вы можете определить модуль в качестве точки входа для вашего приложения, когда пользователь вошел в систему, называется InsideModule, у этого модуля есть собственная маршрутизация, которая называется InsideRoutingModule и может выглядеть такthis:
{
path: 'home',
component: InsideComponent,
children: [
{
path: '',
component: HomeComponent,
},
]
}
Таким образом, InsideComponent - это HTML-код для рендеринга внутри этого модуля, и здесь вы можете использовать общие теги для приложения:
<div class="wrapper">
<app-header></app-header>
<app-left-menu></app-left-menu>
<router-outlet></router-outlet>
<app-footer></app-footer>
<app-right-menu></app-right-menu>
</div>
Для доступа к этому модулю импортируйтеих в файле app.module и измените app.routing следующим образом:
const routes: Routes = [
{
path: '',
redirectTo: 'login',
pathMatch: 'full'
},
{
path: 'login',
component: LoginComponent
},
{
path: 'inside',
loadChildren: () => InsideModule //this is lazy loading
}
];
Или просто перенаправьте на путь, указанный в InsideRoutingModule через маршрутизатор.
app.module.htmlиметь только <router-outlet>
тег