Maison > interface Web > js tutoriel > Une plongée approfondie dans les modules et le chargement paresseux dans Angular

Une plongée approfondie dans les modules et le chargement paresseux dans Angular

青灯夜游
Libérer: 2021-03-03 10:00:42
avant
1702 Les gens l'ont consulté

Cet article vous présentera l'utilisation et le chargement paresseux des modules Angular. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Une plongée approfondie dans les modules et le chargement paresseux dans Angular

Recommandations associées : "Tutoriel angulaire"

1.

Une plongée approfondie dans les modules et le chargement paresseux dans Angular

2. Module personnalisé angulaire

Lorsque notre projet est relativement petit Pas besoin de modules personnalisés. Mais lorsque notre projet est très volumineux, il n'est pas particulièrement approprié de monter tous les composants dans le module racine. Nous pouvons donc à ce moment personnaliser des modules pour organiser nos projets. Et le chargement paresseux des itinéraires peut être réalisé grâce aux modules personnalisés Angular.

ng g module mymodule

Une plongée approfondie dans les modules et le chargement paresseux dans Angular

Créer un nouveau module utilisateur

ng g module module/user
Copier après la connexion

Créer un nouveau composant racine sous le module utilisateur

ng g component module/user
Copier après la connexion

Créer un nouveau composant adresse, commande, profil sous le module utilisateur

ng g component module/user/components/address
 ng g component module/user/components/order
 ng g component module/user/components/profile
Copier après la connexion

Comment monter le module utilisateur dans le module racine ?

Lors du référencement du composant utilisateur dans le fichier modèle app.component.html du composant racine de l'application, une erreur sera signalée
Le traitement suivant est requis avant de pouvoir y accéder

1. Dans l'application .module.ts introduit des modules

Une plongée approfondie dans les modules et le chargement paresseux dans Angular

2. Le module utilisateur expose les composants accessibles au monde extérieur

Une plongée approfondie dans les modules et le chargement paresseux dans Angular

3 , introduisez

<app-user></app-user>
Copier après la connexion

dans le modèle racine app.component.html Si vous devez utiliser le composant app-address directement dans le composant racine, vous en avez également besoin. pour exposer

/ dans le module utilisateur user.module.ts en premier L'exposition des composants permet à d'autres modules d'utiliser des composants exposés/
exports :[UserComponent,AddressComponent]

Comment monter le module produit dans le module racine ?

Identique à ci-dessus

Créer des services sous le module utilisateur

Créer
1.

ng g service module/user/services/common
Copier après la connexion

2. Introduire les services dans le module utilisateur

user.module.ts
Copier après la connexion

Une plongée approfondie dans les modules et le chargement paresseux dans Angular

Configurer le routage pour implémenter le chargement paresseux du module

Une plongée approfondie dans les modules et le chargement paresseux dans Angular

Créer un module :

ng g module module/user --routing
 ng g module module/article --routing
 ng g module module/product --routing
Copier après la connexion

Créer un composant :

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
Copier après la connexion

Ici, nous prenons l'article comme un exemple :

chargement paresseux de configuration angulaire

Le routage en angulaire peut charger à la fois des composants et des modules, et ce que nous appelons le chargement paresseux consiste en fait à charger des modules , il n'y a pas encore d'exemples de composants à chargement différé.
Pour charger un composant, utilisez le mot-clé composant
Pour charger un module, utilisez le mot-clé loadChildren

1 Créez un nouveau contenu app-routing.module.ts

dans. le dossier app Comme suit :

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 { }
Copier après la connexion

forRoot est utilisé dans le module racine pour charger la configuration de routage,
et forChild est utilisé dans les sous-modules pour charger la configuration de routage.

Remarque : Vous devez importer le module AppRoutingModule dans le modèle racine app.module.ts

import { AppRoutingModule } from &#39;./app-routing.module&#39;;
...
imports: [
    AppRoutingModule,
]
Copier après la connexion

2 Configurez le routage dans le sous-module

dans modulearticlearticle-routing. .module.ts Configurer le routage dans

    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 { }
Copier après la connexion

Vous pouvez également ajouter le module de routage lors de la création d'un nouveau projet, et vous pouvez omettre la configuration ci-dessus

dans article-routing.module de le module de l'article.ts configure le routage

.....

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

......
Copier après la connexion

3. Configurez le routage dans le module de routage de l'application

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;
  }
];
Copier après la connexion

Si vous n'avez pas ajouté –routing lors de la création d'un nouveau module. avant, vous devez configurer le module Le routage du

module produit
Le routage du produit : moduleproductproduct-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 { }
Copier après la connexion

Le module de produit :
moduleproductproduct.module .ts

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

imports: [
    ProductRoutingModule
  ],
Copier après la connexion

module utilisateur
routage utilisateur : moduleuseruser-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 { }
Copier après la connexion

module utilisateur : moduleuseruser.module.ts

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

 imports: [
    UserRoutingModule   +
  ],
Copier après la connexion

RouterModule.forRoot() et RouterModule.forChild()

L'objet RouterModule fournit deux méthodes statiques : forRoot() et forChild( ) pour configurer les informations de routage.

La méthode RouterModule.forRoot() est utilisée pour définir les informations de routage principales dans le module principal. RouterModule.forChild() est similaire à la méthode Router.forRoot(), mais elle ne peut être appliquée que dans les modules de fonctionnalités. .

C'est-à-dire que forRoot() est utilisé dans le module racine et forChild() est utilisé dans le sous-module.

配置子路由

1、在商品模块的路由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}
];
Copier après la connexion

2、在商品模块的模板product.component.html 添加router-outlet

<router-outlet></router-outlet>
Copier après la connexion

3、在页面app.component.html添加菜单,方便跳转

<a [routerLink]="[&#39;/product&#39;]">商品模块</a><a [routerLink]="[&#39;/product/plist&#39;]">商品列表</a>
Copier après la connexion

更多编程相关知识,请访问:编程视频!!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal