Angular 7 - разбиение приложения на модули и отложенная загрузка - PullRequest
0 голосов
/ 03 декабря 2018

Это описательный вопрос.Я прочитал документы, и у меня возникли некоторые концептуальные проблемы: -

1) Требуется ли для разделения приложения (для улучшения быстрой загрузки, пакетирования и производительности) реализация с отложенной загрузкой?

2) Как язагружаю компонент, как показано ниже: -

   const componentRef = this.componentFactoryResolver.resolveComponentFactory(cmptName).create(this.injector);
        this.appRef.attachView(componentRef.hostView);
        const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;
        document.querySelector('.mydynamicDiv').appendChild(domElem);

При вызове таких компонентов, как этот, по щелчку на разных компонентах необходимо разделить приложение на несколько модулей (хранение соответствующих компонентов в отдельном модуле).В настоящее время в приложении есть только один app.module.ts и app.routing.ts.Делает ли это разбиение на модули для повышения производительности.Как?

3) Нужно ли нам реализовать маршрутизацию с отложенной загрузкой, а также в routing.ts.

 {
    path: '',
    component: MainLayoutComponent,
    children: [
        { path: '', redirectTo: 'login', pathMatch: 'full' },
        { path: 'login', component: PrgLoginComponent },
        { path: 'login/:token/:id', component: PrgLoginComponent },
 { path: 'calendar', loadChildren: './prg-calendar/prg-calendar.module#PrgCalendarModule', canActivate: [PrgAuthGuardService] },
        { path: 'home', loadChildren: './prg-home/prg-home.module#PrgHomeModule', canActivate: [PrgAuthGuardService] }
    ]
}

Однако, необходимо ли реализовать реализацию с маршрутизацией с отложенной загрузкой, как описано выше, так как яникогда не будет маршрутизировать на такие модули, как calendar выше using route?

Таким образом, только разделение приложения на несколько модулей с отложенной маршрутизацией (когда к некоторым модулям никогда не будут обращаться через маршрутизацию, но они будут напрямуюназывается как указано выше в пункте 2). Это улучшит производительность и уменьшит размер пакета .?

Учитывая вышеизложенный сценарий, я должен разбить свое приложение только на несколько модулей.Или для достижения цели необходима ленивая загрузка с использованием loadchildren .?

Примечание: - Я хочу изменить маршрут для своего приложения, как при первой загрузке приложения.хотите сохранить URL-адрес как - www.abc.com/home, т.е. /home будет направлять только для каждого просмотра.

Любое предложение приветствуется?

1 Ответ

0 голосов
/ 03 декабря 2018

Можете ли вы опубликовать свой код для PrgCalendarModule?

У вас есть маршрут в модуле календаря?

const routes: Routes = [
  {
    path: '',
    component: CalendarComponent
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class PrgCalendarModuleRoutingModule { }

В модуле PrgCalendarModule

...
@NgModule({
imports: [
PrgCalendarModuleRoutingModule
]
...

Все остальноевыглядит хорошо из того, что вы описали.

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