상세 한 설명 사용 경로 지연 로드 Angular 모듈
이 기능 이 어떻게 작 동 하 는 지 간단 한 예 시 를 사용 할 것 이다.응용 프로그램 을 여러 개의 서로 다른 모듈 로 나 누 어 필요 할 때 로드 지연 을 할 수 있 습 니 다.
로드 지연 루트 는 루트 모듈 밖에서 정의 해 야 하기 때문에 로드 지연 이 필요 한 기능 을 기능 모듈 에 포함 시 켜 야 합 니 다.
우 리 는 데모 항목 을 만 들 기 위해Angular CLI를 사용 합 니 다:데모.
ng new demo
그리고 demo 폴 더 에 들 어 갑 니 다.필요 한 패 키 지 를 설치 하 다.
npm i
설치 한 후에 우 리 는 새로운 모듈 shop 을 만 들 었 다.angular CLI 에서 ng 은 명령 알림 명령 입 니 다.g 는 generate 를 표시 하여 새로운 아 이 템 을 만 드 는 데 사 용 됩 니 다.새로운 shop 라 는 모듈 을 만 드 는 것 은:
ng g module shop
이 로 인해 Angular 프로젝트 의 src/app 파일 에 새 폴 더 를 만 들 고 shop.module.ts 라 는 모듈 정의 파일 을 추가 할 수 있 습 니 다.그리고 우 리 는 기본 app 모듈 과 새로 만 든 shop 모듈 에서 각각 구성 요 소 를 만 듭 니 다.
ng g c home/home
ng g c shop/cart
ng g c shop/checkout
ng g c shop/confirm
CLI 는 home 을 app 모듈 에 배정 하고 cart,checkout,confirm 을 shop 모듈 에 배정 합 니 다.예 를 들 어,이때 shop.module.ts 내용 은 다음 과 같 습 니 다.
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CheckoutComponent } from './checkout/checkout.component';
import { CartComponent } from './cart/cart.component';
import { ConfirmComponent } from './confirm/confirm.component';
@NgModule({
imports: [
CommonModule
],
declarations: [CheckoutComponent, CartComponent, ConfirmComponent]
})
export class ShopModule { }
루트 구성 요소 수정Angular CLI 에서 기본적으로 생 성 된 app.coponent.ts 구성 요 소 는 응용 홈 페이지 입 니 다.Angular 에 대한 소개 정 보 를 포함 하고 있 습 니 다.우 리 는 그것 을 우리 가 필요 로 하 는 내용 으로 수정 합 니 다.기본 으로 생 성 된 app.coponent.html 내용 을 다음 과 같이 수정 합 니 다.
<!--The content below is only a placeholder and can be replaced.-->
<h1>Lazy Load Module</h1>
<a [routerLink]="['/shop']" >Shop Cart</a>
<router-outlet>
</router-outlet>
위 치 를 차지 하 는 router-outlet 을 제공 합 니 다.각 구성 요 소 는 이 안에 표 시 됩 니 다.또한 내 비게 이 션 링크 를 제공 하여/shop/cart 구성 요소 로 직접 내 비게 이 션 할 수 있 습 니 다.
경로 만 들 기
루트 루트
우선 루트 를 만 듭 니 다.
app 폴 더 에 main.routing.ts 라 는 경로 설정 파일 을 추가 합 니 다.내용 은 다음 과 같다.
import { Routes } from '@angular/router';
// HomeComponent this components will be eager loaded
import { HomeComponent } from './home/home.component';
export const routes: Routes = [
{ path: '', component: HomeComponent, pathMatch: 'full' },
{ path: 'shop', loadChildren: './shop/shop.module#ShopModule' },
{ path: '**', component: HomeComponent }
];
그 중에서 홈 구성 요 소 는 정상적으로 미리 불 러 옵 니 다.주의해 야 할 것 은 몇 시 입 니까?
1.우 리 는 모듈 로드 를 지연 시 키 기 위해 loadChildren 을 사용 했다.사용 하 는 component 를 미리 불 러 오 는 것 이 아 닙 니 다.
2.우 리 는 미리 불 러 오 는 것 을 피하 기 위해 기호 가 아 닌 문자열 을 사용 했다.
3.우 리 는 모듈 의 경 로 를 정 의 했 을 뿐만 아니 라 모듈 의 유형 도 제공 했다.
app.module.ts 에서 루트 를 사용 합 니 다.루트 를 사용 하려 면 forRoot 를 사용 해 야 합 니 다.
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { routes } from './main.routing';
import { RouterModule } from '@angular/router';
@NgModule({
declarations: [
AppComponent,
HomeComponent
],
imports: [
BrowserModule,
RouterModule.forRoot(routes)
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
모듈 경로정의 모듈 경로
shop 모듈 에 있어 서 경로 정의 에 특별한 것 이 없습니다.shop.route.ts 라 는 경로 정의 파일 을 정의 할 수 있 습 니 다.내용 은 다음 과 같 습 니 다.
import { Routes } from '@angular/router';
import { CartComponent } from './cart/cart.component';
import { CheckoutComponent } from './checkout/checkout.component';
import { ConfirmComponent } from './confirm/confirm.component';
export const routes: Routes = [
{ path: '', component: CartComponent },
{ path: 'checkout', component: CheckoutComponent },
{ path: 'confirm', component: ConfirmComponent }
];
이 루트 정 의 를 사용 하기 위해 모듈 정의 파일 shop.module.ts 파일 을 수정 해 야 합 니 다.하위 루트 를 사용 하려 면 forChild 를 사용 해 야 합 니 다.
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CheckoutComponent } from './checkout/checkout.component';
import { CartComponent } from './cart/cart.component';
import { ConfirmComponent } from './confirm/confirm.component';
import { routes } from './shop.routing';
import { RouterModule } from '@angular/router';
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(routes)
],
declarations: [CheckoutComponent, CartComponent, ConfirmComponent]
})
export class ShopModule { }
이미 모든 것 이 준비 되 었 다.테스트 지연 로드
지금 응용 프로그램 을 시작 합 니 다.
ng serve
기본 값 은 4200 포트 에서 시작 합 니 다.브 라 우 저 를 열 고 접근 하 십시오.http://localhost:4200/첫 페이지 에 접근 하 는 네트워크 는 다음 과 같 습 니 다.기능 모듈 의 내용 은 포함 되 어 있 지 않 습 니 다.
우 리 는 먼저 네트워크 가 요청 한 기록 을 지 웠 다.
그리고 링크 를 클릭 하여/shop/cart 에 접근 할 때 네트워크 요청 은 다음 과 같 습 니 다.새로운 스 크 립 트 파일 이 불 러 오 는 것 을 볼 수 있 습 니 다.여기 에는 로드 지연 기능 모듈 이 포함 되 어 있 습 니 다.
기능 모듈 만 불 러 왔 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
연말이므로 웹 앱을 만들었습니다.minmax 패널을 번갈아 가서 총 득점을 겨루는 게임이다. 선수는 좋아하는 위치에서 시작된다. 후손은 선수가 선택한 위치를 포함한 세로 일렬 중에서 패널을 선택한다. 다시 선수는 후손이 선택한 패널을 포함한 가로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.