2017-10-08 8 views
3

私がAngularを探索した際に、あるモジュールを別のモジュールの内部で使用する2つの方法があります。 (参考のためangular-express-starter projectを使用)モジュール内の別のモジュールを使用する:importsとルートのloadChildrenを使用する

  • 方法1imports配列でそれを宣言する。 For example

    @NgModule({ 
        declarations: [ 
        AppComponent 
        ], 
        imports: [ 
        BrowserModule, 
        SharedModule, 
        FormsModule 
        ] 
    }) 
    
  • 方法2:ルーティングに 使用loadChildrenFor example

    export const routes: Route[] = [ 
        { path: '', pathMatch: 'full', redirectTo: 'weather'}, 
        { loadChildren: 'app/dashboard/dashboard.module#DashboardModule', path: 'dashboard' }, 
        { loadChildren: 'app/profile/profile.module#ProfileModule', path: 'profile' }, 
        { loadChildren: 'app/weather/weather.module#WeatherModule', path: 'weather' } 
    ]; 
    

これらの2つの方法の間に実用的な違いは何ですか?

答えて

0

これらの2つの方法の間に実用的な違いは何ですか?

最も大きな違いは、loadChildrenでロードされたモジュールは独自のインジェクタを持ち、インポートされたモジュールのプロバイダは1つのルートインジェクタにマージされるという点です。これは、遅延ロードされたモジュールから他の遅延ロードされたモジュールにプロバイダを注入できないことを意味します。

その他の違い:あなたはloadChildrenを介してロードさ

  • モジュールは、対応するルートが
  • に移動された場合にのみロードされますルーティング使用していない場合は、loadChildrenを使用することはできません

    0

    loadChildrenを使用している場合は、「レイジーローディング」と呼ばれ、起動時間を短縮するのに役立ちます。遅れてロードされるモジュールは、ユーザーがルートに移動したときにのみロードされます。 「遅延ロード」についての詳細情報については

    https://angular-2-training-book.rangle.io/handout/modules/lazy-loading-module.html

    +0

    また、loadChildrenを使用してモジュールを賢く読み込むこともできます – yurzui

    関連する問題