angular - Angular 延迟加载模块重新加载应用程序
问题描述
我懒加载一个模块。当更改指向它的路由时,整个应用程序重新加载并再次调用 app.component ngOnInit() 函数(这是不可取的,因为我订阅了服务器并且只需要这样做一次)。我发现在不刷新整个应用程序的情况下加载模块称为“热模块重新加载”(HMR),并且有一些包应该对此有所帮助,但是我希望这将由 Angular 本身处理。此问题仅发生在延迟加载的模块中。
app.component.html
<div>
<router-outlet></router-outlet>
</div>
app.component.ts
ngOnInit(): void {
console.log('App init');
this.realtimeService.subscripbeToRT(); // Should be called only once
}
app.module.ts
const routes: Routes = [
{ path: '', component: HomeComponent },
{
path: 'test',
loadChildren: () => import('./test/test.module').then(m => m.TestModule)
},
{ path: '**', redirectTo: '' }
];
@NgModule({
declarations: [
...
],
imports: [
RouterModule.forRoot(routes),
...
],
bootstrap: [AppComponent]
})
export class AppModule { }
在上面的示例中,实时服务在路由更改到 /test 页面时被调用。有谁知道加载惰性模块时如何禁用整个应用程序刷新?
谢谢
解决方案
我有同样的问题,因为我在我的顶栏中而不是使用 click=goto(/blah) 并且在 ts 文件中这样做 this.router.navigate(url) 解决了这个问题
推荐阅读
- c# - 使用枚举的计算器
- javascript - Wordpress:是否可以在块编辑器样式表中使用 post-type 作为 CSS 选择器的一部分?
- c - 连接字符串时不显示几个字符
- python - 将文本格式的固定宽度表格转换为dataframe/excel/csv
- python - 我正在使用请求模块登录 Instagram 并在登录后检索用户信息
- android - 即使刚刚移动地图,也会调用 onLocationChanged
- google-bigquery - 使用 BigQuery 从数组中的重复列中提取值
- javascript - Clip Studio Paint Assets 在 Linux 上下载
- ios - 将 TextFields 放置在 TableViewCells 中并滚动出视图时,它如何表现得像 FirstResponder?
- python - pycharm中的Tensorflow自动完成