Angular モジュールの使用と遅延読み込みについて話す

青灯夜游
リリース: 2021-02-01 11:47:32
転載
2028 人が閲覧しました

Angular モジュールの使用と遅延読み込みについて話す

#関連チュートリアルの推奨事項:

angularjs (ビデオ チュートリアル)

1. Angular 組み込みモジュール

Angular モジュールの使用と遅延読み込みについて話す

2. Angular カスタム モジュール

プロジェクトが比較的小さい場合、モジュールをカスタマイズする必要はありません。ただし、プロジェクトが非常に大きい場合、すべてのコンポーネントをルート モジュールにマウントすることは特に適切ではありません。したがって、現時点ではモジュールをカスタマイズしてプロジェクトを整理できます。また、ルートの遅延読み込みは、Angular カスタム モジュールを通じて実現できます。

ng g module mymodule
ログイン後にコピー

Angular モジュールの使用と遅延読み込みについて話す

新しいユーザー モジュールを作成します


ng g module module/user
ログイン後にコピー

ユーザー モジュールの下に新しいルート コンポーネントを作成します


ng g component module/user
ログイン後にコピー

新しいものを作成する ユーザー モジュールの下のアドレス、順序、プロファイル コンポーネント


ng g component module/user/components/address
ng g component module/user/components/order
ng g component module/user/components/profile
ログイン後にコピー

ユーザー モジュールをルート モジュールにマウントするにはどうすればよいですか?

アプリ ルート コンポーネントのテンプレート ファイル app.component.html 内のユーザー コンポーネントを参照するとエラーが報告されます

アクセスするには次の処理が必要です

#app.module.ts モジュールで導入

Angular モジュールの使用と遅延読み込みについて話す##ユーザー モジュールは、外部からアクセスできるコンポーネントを公開します


  1. Angular モジュールの使用と遅延読み込みについて話すルート テンプレート app.component.html に

  2. <app-user></app-user>
    ログイン後にコピー

    を導入します。app-address コンポーネントを直接使用する必要がある場合は、ルート コンポーネントの場合は、最初にそれをユーザー モジュール user.module に追加する必要もあります。ts 露出

  3. /
他のモジュールが公開されたコンポーネントを使用できるようにコンポーネントを公開します

/

エクスポート:[ UserComponent,AddressComponent]

製品をルート モジュールにマウントする方法 モジュールについてはどうですか?
上と同じ

ユーザー モジュールの下にサービスを作成します

作成

ng g サービス モジュール/user/services/common

  1. ユーザー モジュールでのサービスの紹介

    user.module.ts

  2. ##モジュールの遅延読み込みを実装するためのルーティングの構成

Angular モジュールの使用と遅延読み込みについて話す

モジュールの作成:

ng g module module/user --routing
ng g module module/article --routing
ng g module module/product --routing
ログイン後にコピー
Angular モジュールの使用と遅延読み込みについて話すコンポーネントの作成:

ng g component module/user
ng g component module/user/components/profile
ng g component module/user/components/order
ng g component module/article
ng g component module/article/components/articlelist ng g component module/article/components/info
ng g component module/product
ng g component module/product/components/plist
ng g component module/product/components/pinfo
ログイン後にコピー

記事を例に挙げてみましょう:

angular 設定の遅延読み込み

angular でのルーティングはコンポーネントとモジュールの両方を読み込むことができ、遅延読み込みと呼ばれるものは実際にはモジュールを読み込むことを意味します。コンポーネントの遅延読み込みの例はまだありません。

コンポーネントをロードするには、component キーワードを使用します。

モジュールをロードするには、loadChildren キーワードを使用します。

1. アプリ内に新しい app-routing.module.ts


コンテンツを作成しますフォルダー 次のように:

import { NgModule } from &#39;@angular/core&#39;;
import { Routes, RouterModule } from &#39;@angular/router&#39;;
@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }
ログイン後にコピー

forRoot はルート モジュールにルーティング設定をロードするために使用され、

および forChild はサブモジュールにルーティング設定をロードするために使用されます。

注: AppRoutingModule モジュールをルート テンプレート app.module.ts

import { AppRoutingModule } from &#39;./app-routing.module&#39;;
...
imports: [
    AppRoutingModule,
]
ログイン後にコピー

2 にインポートする必要があります。サブモジュールでルーティングを構成します

\module\article\ topic- routing.module.ts

    import { NgModule } from &#39;@angular/core&#39;;
    import { Routes, RouterModule } from &#39;@angular/router&#39;;

    // import {ArticleComponent} from &#39;./article.component&#39;;
    const routes: Routes = [
    // {
    //     path:&#39;&#39;,
    //     component:ArticleComponent
    // }
    ];

    @NgModule({
    imports: [RouterModule.forChild(routes)],
    exports: [RouterModule]
    })
    export class ArticleRoutingModule { }
ログイン後にコピー

でルーティングを構成します。新しいプロジェクトを作成するときにルーティング モジュールを追加することもできます。上記の構成は省略できます。

記事モジュール -routing .module.ts ルーティングを構成します

.....

import {ArticleComponent} from &#39;./article.component&#39;;
const routes: Routes = [
  {
    path:&#39;&#39;,
    component:ArticleComponent
  }
];

......
ログイン後にコピー

3. アプリのルーティング モジュールでルーティングを構成します

const routes: Routes = [
  {
    path:&#39;article&#39;,
    //写法一:
    loadChildren:&#39;./module/article/article.module#ArticleModule&#39;

    //写法二
    // loadChildren: () => import(&#39;./module/user/user.module&#39;).then( m => m.UserModule)  
  },
  // {
  //   path:&#39;user&#39;,loadChildren:&#39;./module/user/user.module#UserModule&#39;
  // },
  // {
  //   path:&#39;product&#39;,loadChildren:&#39;./module/product/product.module#ProductModule&#39;
  // },
  {
    path:&#39;**&#39;,redirectTo:&#39;article&#39;
  }
];
ログイン後にコピー
以前に新しいモジュールを作成するときに -routing を追加しなかった場合、モジュール

product module 製品のルーティングを構成する必要があります: module\product\product-routing.module.ts

import { NgModule } from &#39;@angular/core&#39;;
import { Routes, RouterModule } from &#39;@angular/router&#39;;

import {ProductComponent} from &#39;./product.component&#39;;
const routes: Routes = [
  {
    path:&#39;&#39;,
    component:ProductComponent
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class ProductRoutingModule { }
ログイン後にコピー

product モジュール: module\product\product.module.ts

import { ProductRoutingModule } from &#39;./product-routing.module&#39;;

imports: [
    ProductRoutingModule
  ],
ログイン後にコピー

ユーザー モジュール


ユーザーのルーティング: \module\user\user-routing.module.ts

import { NgModule } from &#39;@angular/core&#39;;
import { Routes, RouterModule } from &#39;@angular/router&#39;;

import {UserComponent} from &#39;./user.component&#39;;
const routes: Routes = [
  {
    path:&#39;&#39;,
    component:UserComponent
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class UserRoutingModule { }
ログイン後にコピー

ユーザーのモジュール: \module\user\user.module.ts

import {UserRoutingModule} from &#39;./user-routing.module&#39;;  +

 imports: [
    UserRoutingModule   +
  ],
ログイン後にコピー

RouterModule.forRoot() および RouterModule.forChild()

RouterModule オブジェクトには、ルーティング情報を構成するための 2 つの静的メソッド forRoot() と forChild() が用意されています。

RouterModule.forRoot() メソッドは、メイン モジュールでメインのルーティング情報を定義するために使用されます。RouterModule.forChild() は Router.forRoot() メソッドに似ていますが、機能モジュールでのみ適用できます。 。

つまり、ルート モジュールでは forRoot() を使用し、サブモジュールでは forChild() を使用します。

サブルーティングの構成

製品モジュールの product-routing.module.ts でサブルーティングを構成します。

import { PlistComponent } from &#39;./components/plist/plist.component&#39;;
import { CartComponent } from &#39;./components/cart/cart.component&#39;;
import { PinfoComponent } from &#39;./components/pinfo/pinfo.component&#39;;

const routes: Routes = [
  {
    path:&#39;&#39;,
    component:ProductComponent,
    children:[
      {path:&#39;cart&#39;,component:CartComponent},
      {path:&#39;pcontent&#39;,component:PinfoComponent}
    ]
  },
  {path:&#39;plist&#39;,component:PlistComponent}
];
ログイン後にコピー

    製品モジュール テンプレート product.component.html router-outlet を追加
  1. <router-outlet></router-outlet>
    ログイン後にコピー
    簡単にジャンプできるようにページ app.component.html にメニューを追加
  1. <a [routerLink]="[&#39;/product&#39;]">商品模块</a>
    <a [routerLink]="[&#39;/product/plist&#39;]">商品列表</a>
    ログイン後にコピー
    その他のプログラミング関連知識、アクセス可能:

      プログラミング学習コース
    1. ! !

    以上がAngular モジュールの使用と遅延読み込みについて話すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート