我使用的是Angular7,并且使用了新的语法,即用于延迟加载模块的loadChildren。但是,当我为我的应用程序提供服务并签入浏览器时,我发现它没有创建任何区块。

下面是我的App-routing
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{ path: '', loadChildren: './layout/layout.module#LayoutModule' },
{ path: 'auth', loadChildren: './auth/auth.module#AuthModule' },
{ path: 'not-found', loadChildren: './not-found/not-found.module#NotFoundModule' },
{ path: '**', redirectTo: 'not-found' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }下面是我的应用程序模块I
mport { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
// imports for internationalization i18n
import { HttpClientModule } from '@angular/common/http';
import { LanguageTranslationModule } from './language-translation/language-translation.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
HttpClientModule,
LanguageTranslationModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {
}发布于 2019-04-30 16:47:49

如图所示,确实创建了块。
并且找不到模块没有出现,这是正常的。
发布于 2020-11-04 00:40:36
为什么要创建延迟加载的布局模块?延迟加载功能模块的整个想法不是为了在后台或请求时预加载或加载其他功能模块时快速地向用户显示第一个页面吗?
如果你有一个布局模块,从一开始你就至少有3个请求:1个请求你的应用程序,一个请求布局,最有可能的是一个请求在布局中呈现页面。
您可以提高性能,构建一个预先加载的模块布局,添加到AppModule中,然后使用延迟加载功能模块在布局中布线组件。此外,主页应该包含在AppModule中,以便快速呈现,而不是等待浏览器下载的延迟加载模块呈现。
顺便说一句:我已经看到,如果我使用由AppModule中的功能模块导出的组件,或者在AppModule中包含的组件中,那么该功能模块将不会有自己的块文件。每个延迟加载功能模块都应该是自包含的,并且不应该将组件导出到其他模块。如果这样做,您可能需要更多地拆分模块,以便能够在模块之间共享某些组件/提供程序。
此外,要小心在功能模块之间共享提供程序,因为您有子注入器,最终会有多个单例实例,每个功能模块一个实例。要共享提供程序,您应该在共享模块中实现.forRoot和.forChild。
https://stackoverflow.com/questions/55914663
复制相似问题