Angular 2
モジュールのレイジーロード
サーチ…
遅延読み込みの例
レイジーローディングモジュールは起動時間を短縮するのに役立ちます。遅延ロードでは、アプリケーションはすべてを一度にロードする必要はなく、アプリケーションのロード時にユーザが見たいものをロードするだけで済みます。遅れてロードされるモジュールは、ユーザーがルートに移動したときにのみロードされます。
app / app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { EagerComponent } from './eager.component';
import { routing } from './app.routing';
@NgModule({
imports: [
BrowserModule,
routing
],
declarations: [
AppComponent,
EagerComponent
],
bootstrap: [AppComponent]
})
export class AppModule {}
app / app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `<h1>My App</h1> <nav>
<a routerLink="eager">Eager</a>
<a routerLink="lazy">Lazy</a>
</nav>
<router-outlet></router-outlet>
`
})
export class AppComponent {}
app / app.routing.ts
import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { EagerComponent } from './eager.component';
const routes: Routes = [
{ path: '', redirectTo: 'eager', pathMatch: 'full' },
{ path: 'eager', component: EagerComponent },
{ path: 'lazy', loadChildren: './lazy.module' }
];
export const routing: ModuleWithProviders = RouterModule.forRoot(routes);
app / eager.component.ts
import { Component } from '@angular/core';
@Component({
template: '`<p>Eager Component</p>`'
})
export class EagerComponent {}
LazyModuleには、独自のルーティングとLazyComponentというコンポーネントがあります(しかし、モジュールやsimliarの名前を付ける必要はありません)。
app / lazy.module.ts
import { NgModule } from '@angular/core';
import { LazyComponent } from './lazy.component';
import { routing } from './lazy.routing';
@NgModule({
imports: [routing],
declarations: [LazyComponent]
})
export class LazyModule {}
app / lazy.routing.ts
import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LazyComponent } from './lazy.component';
const routes: Routes = [
{ path: '', component: LazyComponent }
];
export const routing: ModuleWithProviders = RouterModule.forChild(routes);
app / lazy.component.ts
import { Component } from '@angular/core';
@Component({
template: `<p>Lazy Component</p>`
})
export class LazyComponent {}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow