浅谈Angular2 模块懒加载的方法

网友投稿 240 2023-03-28


浅谈Angular2 模块懒加载的方法

当项目变得复杂庞大以后,如果所有页面都在一个模块里,就会出现首页加载慢的问题,因为首页就已经把整个项目加载进来了。所以,很有必要根据业务将不同的功能分模块,以便Angular2http://按需加载,提升用户体验。

下面的例子是将首页放到home模块里,访问/home时加载home模块内容,仅供学习懒加载,其实首页访问路径应该是/

先看项目文件结构:

home模块放到src/app/home目录下,里面的home目录是home组件。

home模块有单独的定义和路由(home.module.ts,home-routing.module.ts)

创建HOME模块和HOME组件:

cd src/app/

mkdir home

cd home

ng g module home

ng g component home

创建HOME模块的路由配置模块

创建 home-routing.module.ts:

import {Routes, RouterModulitbQene} 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的开发者工具,切到Network,看看不同的页面是不是加载了不同的文件。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:servlet重定向详解(八)
下一篇:浅谈angular2路由预加载策略
相关文章

 发表评论

暂时没有评论,来抢沙发吧~