这是一个描述性问题。我已阅读文档并遇到一些概念性问题:-
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);
通过在不同的不同组件中调用此类onclick组件,需要将应用程序拆分为几个模块(将各个组件保留在单独的模块中)。当前,应用程序只有一个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
进行延迟加载才能实现该目标??
注意:-我想更改应用程序视图的路由,就像第一次加载应用程序一样,我想保持网址类似-www.abc.com/home
,即/home
仅针对每个视图进行路由
有什么建议值得赞赏吗?
答案 0 :(得分:-1)
您可以为PrgCalendarModule发布代码吗?
日历模块中是否有路线?
const routes: Routes = [
{
path: '',
component: CalendarComponent
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class PrgCalendarModuleRoutingModule { }
在PrgCalendarModule中
...
@NgModule({
imports: [
PrgCalendarModuleRoutingModule
]
...
从您的描述来看,其他所有内容都很好。