淺談Angular2 模塊懶加載的方法
當(dāng)項目變得復(fù)雜龐大以后,如果所有頁面都在一個模塊里,就會出現(xiàn)首頁加載慢的問題,因為首頁就已經(jīng)把整個項目加載進來了。所以,很有必要根據(jù)業(yè)務(wù)將不同的功能分模塊,以便Angular2按需加載,提升用戶體驗。
下面的例子是將首頁放到home模塊里,訪問/home時加載home模塊內(nèi)容,僅供學(xué)習(xí)懶加載,其實首頁訪問路徑應(yīng)該是/
先看項目文件結(jié)構(gòu):
home模塊放到src/app/home目錄下,里面的home目錄是home組件。
home模塊有單獨的定義和路由(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{}
模塊下的頁面都可以單獨在該模塊自己的的路由配置模塊上配置,而不用在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模塊
完成后打開chrome的開發(fā)者工具,切到Network,看看不同的頁面是不是加載了不同的文件。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決angular 使用原生拖拽頁面卡頓及表單控件輸入延遲問題
這篇文章主要介紹了angular 中使用原生拖拽頁面卡頓及表單控件輸入延遲問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04Angular2學(xué)習(xí)教程之TemplateRef和ViewContainerRef詳解
這篇文章主要給大家介紹了Angular2中TemplateRef和ViewContainerRef的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-05-05AngularJS中$http服務(wù)常用的應(yīng)用及參數(shù)
大家都知道,AngularJS中的$http有很多參數(shù)和調(diào)用方法,所以本文只記錄了比較常用的應(yīng)用及參數(shù),方便大家以后使用的時候參考學(xué)習(xí),下面一起來看看吧。2016-08-08基于AngularJs select綁定數(shù)字類型的問題
今天小編就為大家分享一篇基于AngularJs select綁定數(shù)字類型的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10es6+angular1.X+webpack 實現(xiàn)按路由功能打包項目的示例
本篇文章主要介紹了es6+angular1.X+webpack 實現(xiàn)按路由功能打包項目的示例,具有一定的參考價值,有需要的可以了解一下2017-08-08Angular2管道Pipe及自定義管道格式數(shù)據(jù)用法實例分析
這篇文章主要介紹了Angular2管道Pipe及自定義管道格式數(shù)據(jù)用法,結(jié)合實例形式詳細分析了Angular2管道與純管道相關(guān)概念、語法及使用技巧,需要的朋友可以參考下2017-11-11