Heim > Web-Frontend > js-Tutorial > Sprechen Sie über die Verwendung von Angular-Modulen und Lazy Loading

Sprechen Sie über die Verwendung von Angular-Modulen und Lazy Loading

青灯夜游
Freigeben: 2021-02-01 11:47:32
nach vorne
2060 Leute haben es durchsucht

Sprechen Sie über die Verwendung von Angular-Modulen und Lazy Loading

Empfohlene verwandte Tutorials: angularjs (Video-Tutorial)

1. Angular integrierte Module

Sprechen Sie über die Verwendung von Angular-Modulen und Lazy Loading

2. Angular benutzerdefinierte Module

Wenn unser Projekt relativ klein ist, brauchen wir es nicht benutzerdefinierte Module. Wenn unser Projekt jedoch sehr groß ist, ist es nicht besonders sinnvoll, alle Komponenten im Root-Modul zu montieren. Zu diesem Zeitpunkt können wir also Module anpassen, um unsere Projekte zu organisieren. Und das verzögerte Laden von Routen kann durch benutzerdefinierte Angular-Module erreicht werden.

ng g module mymodule
Nach dem Login kopieren

Sprechen Sie über die Verwendung von Angular-Modulen und Lazy Loading

Erstellen Sie ein neues Benutzermodul

ng g module module/user
Nach dem Login kopieren

Erstellen Sie eine neue Root-Komponente unter dem Benutzermodul

ng g component module/user
Nach dem Login kopieren

Erstellen Sie eine neue Adress-, Bestell- und Profilkomponente unter dem Benutzermodul

ng g component module/user/components/address
ng g component module/user/components/order
ng g component module/user/components/profile
Nach dem Login kopieren

So mounten Sie den Benutzer Modul im Root-Modul Wolltuch?

Beim Verweisen auf die Benutzerkomponente in der Vorlagendatei app.component.html der App-Root-Komponente wird ein Fehler gemeldet
Die folgende Verarbeitung ist erforderlich, bevor darauf zugegriffen werden kann

  1. Führen Sie das Modul in app.module.ts ein

Sprechen Sie über die Verwendung von Angular-Modulen und Lazy Loading

  1. Das Benutzermodul wird verfügbar gemacht
    Sprechen Sie über die Verwendung von Angular-Modulen und Lazy Loading

  2. Fügen Sie die Komponente ein, auf die die Außenwelt zugreifen soll, in der Stammvorlage app.component.html

<app-user></app-user>
Nach dem Login kopieren

Wenn Sie die App-Adresse verwenden müssen Komponente direkt in der Root-Komponente, müssen Sie sie auch zuerst zum Benutzermodul hinzufügen. module.ts stellt

/Exponierte Komponenten bereit, damit andere Module exponierte Komponenten verwenden können/
exportiert:[UserComponent,AddressComponent]

Wie mounte ich das Produktmodul im Root-Modul?

Gleiches wie oben

Erstellen Sie einen Dienst unter dem Benutzermodul

  1. Erstellen Sie
    ng g service module/user/services/common

  2. Führen Sie den Dienst im Benutzermodul ein
    user.module.ts

Sprechen Sie über die Verwendung von Angular-Modulen und Lazy Loading

Konfigurations-Routing-Implementierungsmodul Lazy Loading

Sprechen Sie über die Verwendung von Angular-Modulen und Lazy Loading

Modul erstellen:

ng g module module/user --routing
ng g module module/article --routing
ng g module module/product --routing
Nach dem Login kopieren

Komponente erstellen:

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
Nach dem Login kopieren

Hier nehmen wir den Artikel als Beispiel zur Erläuterung:

Winkelkonfiguration Lazy Loading

Fräsen im Winkel kann sowohl Komponenten laden als auch Module laden, und was wir Lazy Loading nennen, bedeutet eigentlich das Laden von Modulen. Es gibt noch keine Beispiele für Lazy Loading-Komponenten.
Um Komponenten zu laden, verwenden Sie das Schlüsselwort „component“.
Um Module zu laden, verwenden Sie das Schlüsselwort „loadChildren“.

1 Erstellen Sie eine neue app-routing.module.ts im App-Ordner.

Der Inhalt lautet wie folgt:

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 { }
Nach dem Login kopieren

forRoot wird verwendet um die Routing-Konfiguration des Root-Moduls zu laden,
und forChild wird in Submodulen zum Laden der Routing-Konfiguration verwendet.

Hinweis: Sie müssen das AppRoutingModule-Modul in die Stammvorlage app.module.ts

import { AppRoutingModule } from &#39;./app-routing.module&#39;;
...
imports: [
    AppRoutingModule,
]
Nach dem Login kopieren

2 importieren. Konfigurieren Sie das Routing im Untermodul. Konfigurieren Sie das Routing im Modularticlearticle-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 { }
Nach dem Login kopieren

Sie können auch Erstellen Sie ein neues Projekt. Wenn Sie das Routing-Modul hinzufügen, können Sie die obige Konfiguration speichern.

Routing im Artikel-Routing-Modul konfigurieren

Wenn beim Erstellen eines neuen Moduls zuvor kein Routing hinzugefügt wurde, müssen Sie das Routing des Moduls konfigurieren:

Produktmodul

Produktrouting: moduleproductproduct-routing.module.ts

.....

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

......
Nach dem Login kopieren

Produktmodul:

moduleproductproduct. module.ts

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;
  }
];
Nach dem Login kopieren

Benutzermodul

Benutzerrouting: moduleuseruser-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 { }
Nach dem Login kopieren

Benutzermodul: moduleuseruser.module.ts

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

imports: [
    ProductRoutingModule
  ],
Nach dem Login kopieren
RouterModule.forRoot() und RouterModule.forChild()

RouterModule Das Objekt stellt zwei statische Methoden bereit: forRoot() und forChild() zum Konfigurieren von Routing-Informationen.

Die Methode RouterModule.forRoot() wird zum Definieren von Hauptroutinginformationen im Hauptmodul verwendet. RouterModule.forChild() ähnelt der Methode Router.forRoot(), kann jedoch nur in Funktionsmodulen angewendet werden. Das heißt, verwenden Sie forRoot() im Root-Modul und forChild() im Submodul.

Unterrouting konfigurieren

Unterrouting im Routing product-routing.module.ts des Produktmoduls konfigurieren

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 { }
Nach dem Login kopieren

Router-Outlet in der Vorlage product.component.html des Produktmoduls hinzufügen
  1. import {UserRoutingModule} from &#39;./user-routing.module&#39;;  +
    
     imports: [
        UserRoutingModule   +
      ],
    Nach dem Login kopieren
In der Seiten-App .component.html wird ein Menü zum einfachen Springen hinzugefügt
  1. 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}
    ];
    Nach dem Login kopieren
    Weitere Programmierkenntnisse finden Sie unter: Programmierlernkurs
      ! !

    Das obige ist der detaillierte Inhalt vonSprechen Sie über die Verwendung von Angular-Modulen und Lazy Loading. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage