首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angular7:延迟加载不创建块

Angular7:延迟加载不创建块
EN

Stack Overflow用户
提问于 2019-04-30 13:50:21
回答 2查看 1.4K关注 0票数 0

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

下面是我的App-routing

代码语言:javascript
复制
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

代码语言:javascript
复制
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 {
}
EN

回答 2

Stack Overflow用户

发布于 2019-04-30 16:47:49

如图所示,确实创建了块。

并且找不到模块没有出现,这是正常的。

票数 0
EN

Stack Overflow用户

发布于 2020-11-04 00:40:36

为什么要创建延迟加载的布局模块?延迟加载功能模块的整个想法不是为了在后台或请求时预加载或加载其他功能模块时快速地向用户显示第一个页面吗?

如果你有一个布局模块,从一开始你就至少有3个请求:1个请求你的应用程序,一个请求布局,最有可能的是一个请求在布局中呈现页面。

您可以提高性能,构建一个预先加载的模块布局,添加到AppModule中,然后使用延迟加载功能模块在布局中布线组件。此外,主页应该包含在AppModule中,以便快速呈现,而不是等待浏览器下载的延迟加载模块呈现。

顺便说一句:我已经看到,如果我使用由AppModule中的功能模块导出的组件,或者在AppModule中包含的组件中,那么该功能模块将不会有自己的块文件。每个延迟加载功能模块都应该是自包含的,并且不应该将组件导出到其他模块。如果这样做,您可能需要更多地拆分模块,以便能够在模块之间共享某些组件/提供程序。

此外,要小心在功能模块之间共享提供程序,因为您有子注入器,最终会有多个单例实例,每个功能模块一个实例。要共享提供程序,您应该在共享模块中实现.forRoot和.forChild。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55914663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档