淺談Angular2 模塊懶加載的方法
當(dāng)項(xiàng)目變得復(fù)雜龐大以后,如果所有頁(yè)面都在一個(gè)模塊里,就會(huì)出現(xiàn)首頁(yè)加載慢的問(wèn)題,因?yàn)槭醉?yè)就已經(jīng)把整個(gè)項(xiàng)目加載進(jìn)來(lái)了。所以,很有必要根據(jù)業(yè)務(wù)將不同的功能分模塊,以便Angular2按需加載,提升用戶體驗(yàn)。
下面的例子是將首頁(yè)放到home模塊里,訪問(wèn)/home時(shí)加載home模塊內(nèi)容,僅供學(xué)習(xí)懶加載,其實(shí)首頁(yè)訪問(wèn)路徑應(yīng)該是/
先看項(xiàng)目文件結(jié)構(gòu):

home模塊放到src/app/home目錄下,里面的home目錄是home組件。
home模塊有單獨(dú)的定義和路由(home.module.ts,home-routing.module.ts)
創(chuàng)建HOME模塊和HOME組件:
cd src/app/ mkdir home cd home ng g module home ng g component home
創(chuàng)建HOME模塊的路由配置模塊
創(chuàng)建 home-routing.module.ts:
import {Routes, RouterModule} from "@angular/router";
import {HomeComponent} from "./home/home.component";
import {NgModule} from "@angular/core";
const routes: Routes=[
{
path:'',
component:HomeComponent
}
]
@NgModule({
imports:[RouterModule.forChild(routes)],
exports:[RouterModule],
providers:[]
})
export class HomeRoutingModule{}
模塊下的頁(yè)面都可以單獨(dú)在該模塊自己的的路由配置模塊上配置,而不用在app-routing.module.ts里配置,注意RouterModule.forChild(routes)
home.module.ts導(dǎo)入路由模塊:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { HomeComponent } from './home/home.component';
import {HomeRoutingModule} from "./home-routing.module";
@NgModule({
imports: [
CommonModule,
HomeRoutingModule
],
declarations: [HomeComponent]
})
export class HomeModule { }
在app-routing.module.ts配置路由:
import {NgModule} from "@angular/core";
import {Routes, RouterModule} from "@angular/router";
import {UserListComponent} from "./user/user-list/user-list.component";
import {UserDetailComponent} from "./user/user-detail/user-detail.component";
import {RxjsComponent} from "./rxjs/rxjs.component";
import {UserEditComponent} from "./user/user-edit/user-edit.component";
import {environment} from "../environments/environment";
const routes: Routes = [
{
path:'home',
loadChildren:'app/home/home.module#HomeModule'
}
];
@NgModule({
imports: [RouterModule.forRoot(routes,{ useHash: environment.useHash })],
exports: [RouterModule],
providers: []
})
export class AppRoutingModule { }
配置home路徑,使用loadChildren加載home模塊
完成后打開(kāi)chrome的開(kāi)發(fā)者工具,切到Network,看看不同的頁(yè)面是不是加載了不同的文件。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決angular 使用原生拖拽頁(yè)面卡頓及表單控件輸入延遲問(wèn)題
這篇文章主要介紹了angular 中使用原生拖拽頁(yè)面卡頓及表單控件輸入延遲問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Angular2學(xué)習(xí)教程之TemplateRef和ViewContainerRef詳解
這篇文章主要給大家介紹了Angular2中TemplateRef和ViewContainerRef的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05
AngularJS中$http服務(wù)常用的應(yīng)用及參數(shù)
大家都知道,AngularJS中的$http有很多參數(shù)和調(diào)用方法,所以本文只記錄了比較常用的應(yīng)用及參數(shù),方便大家以后使用的時(shí)候參考學(xué)習(xí),下面一起來(lái)看看吧。2016-08-08
AngularJS實(shí)現(xiàn)ajax請(qǐng)求的方法
這篇文章主要介紹了AngularJS實(shí)現(xiàn)ajax請(qǐng)求的方法,結(jié)合實(shí)例形式分析了AngularJS實(shí)現(xiàn)ajax請(qǐng)求的前端界面、ajax交互及后臺(tái)php處理技巧,需要的朋友可以參考下2016-11-11
基于AngularJs select綁定數(shù)字類型的問(wèn)題
今天小編就為大家分享一篇基于AngularJs select綁定數(shù)字類型的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
es6+angular1.X+webpack 實(shí)現(xiàn)按路由功能打包項(xiàng)目的示例
本篇文章主要介紹了es6+angular1.X+webpack 實(shí)現(xiàn)按路由功能打包項(xiàng)目的示例,具有一定的參考價(jià)值,有需要的可以了解一下2017-08-08
Angular模版驅(qū)動(dòng)表單的使用總結(jié)
這篇文章主要介紹了Angular模版驅(qū)動(dòng)表單的使用總結(jié),本文實(shí)現(xiàn)了Angular支持表單的雙向數(shù)據(jù)綁定,校驗(yàn),狀態(tài)管理,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-05-05
Angular2管道Pipe及自定義管道格式數(shù)據(jù)用法實(shí)例分析
這篇文章主要介紹了Angular2管道Pipe及自定義管道格式數(shù)據(jù)用法,結(jié)合實(shí)例形式詳細(xì)分析了Angular2管道與純管道相關(guān)概念、語(yǔ)法及使用技巧,需要的朋友可以參考下2017-11-11
AngularJS中使用ng-repeat的index問(wèn)題
這篇文章主要介紹了AngularJS中使用ng-repeat的index問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11

