淺談Angular2 模塊懶加載的方法
當項目變得復雜龐大以后,如果所有頁面都在一個模塊里,就會出現首頁加載慢的問題,因為首頁就已經把整個項目加載進來了。所以,很有必要根據業(yè)務將不同的功能分模塊,以便Angular2按需加載,提升用戶體驗。
下面的例子是將首頁放到home模塊里,訪問/home時加載home模塊內容,僅供學習懶加載,其實首頁訪問路徑應該是/
先看項目文件結構:

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導入路由模塊:
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,看看不同的頁面是不是加載了不同的文件。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解決angular 使用原生拖拽頁面卡頓及表單控件輸入延遲問題
這篇文章主要介紹了angular 中使用原生拖拽頁面卡頓及表單控件輸入延遲問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
Angular2學習教程之TemplateRef和ViewContainerRef詳解
這篇文章主要給大家介紹了Angular2中TemplateRef和ViewContainerRef的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-05-05
es6+angular1.X+webpack 實現按路由功能打包項目的示例
本篇文章主要介紹了es6+angular1.X+webpack 實現按路由功能打包項目的示例,具有一定的參考價值,有需要的可以了解一下2017-08-08
Angular2管道Pipe及自定義管道格式數據用法實例分析
這篇文章主要介紹了Angular2管道Pipe及自定義管道格式數據用法,結合實例形式詳細分析了Angular2管道與純管道相關概念、語法及使用技巧,需要的朋友可以參考下2017-11-11

