浅谈Angular2 模块懒加载的方法


Posted in Javascript onOctober 04, 2017

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

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

先看项目文件结构:

浅谈Angular2 模块懒加载的方法

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的typeof操作符用法实例
Apr 05 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
Aug 01 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
Nov 23 Javascript
BootStrap Table 获取同行不同列元素的方法
Dec 19 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
Jun 23 Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 Javascript
Vue2几种常见开局方式详解
Sep 09 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
Oct 01 Javascript
angularjs通过过滤器返回超链接的方法
Oct 26 Javascript
Vue实现剪贴板复制功能
Dec 31 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
Jul 22 Javascript
js实现菜单跳转效果
Dec 11 Javascript
浅谈angular2路由预加载策略
Oct 04 #Javascript
浅谈Angular路由复用策略
Oct 04 #Javascript
React-Native之定时器Timer的实现代码
Oct 04 #Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
Oct 04 #Javascript
无限循环轮播图之运动框架(原生JS实现)
Oct 01 #Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
Oct 01 #Javascript
原生js封装运动框架的示例讲解
Oct 01 #Javascript
You might like
PHP中对用户身份认证实现两种方法
2011/06/04 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
js chrome浏览器判断代码
2010/03/28 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
德国团购网站:Groupon德国
2018/03/13 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
英国名牌男装店:Standout
2021/02/17 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
技校毕业生自荐信范文
2014/03/07 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
简单的项目建议书模板
2014/03/12 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python
mysql sock 文件解析及作用讲解
2022/07/15 MySQL