浅谈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 学习笔记(十四) 正则表达式
Jan 22 Javascript
location.href语句与火狐不兼容的问题
Jul 04 Javascript
JavaScript中创建类/对象的几种方法总结
Nov 29 Javascript
jQuery中slideUp()方法用法分析
Dec 24 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
Jan 18 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
Apr 12 Javascript
JavaScript实现图片懒加载的方法分析
Jul 05 Javascript
微信小程序实现带缩略图轮播效果
Nov 04 Javascript
Angular事件之不同组件间传递数据的方法
Nov 15 Javascript
JavaScript相等运算符的九条规则示例详解
Oct 20 Javascript
js String.prototype.trim字符去前后空格的扩展
Aug 23 Javascript
基于JavaScript实现简单扫雷游戏
Jan 02 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中创建图像并绘制文字的例子
2014/11/19 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
JQuery导航菜单选择特效
2016/04/11 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
python对字典进行排序实例
2014/09/25 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
python线程池如何使用
2020/05/28 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
Django自带的用户验证系统实现
2020/12/18 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
全球最大的中文旅行网站:去哪儿网
2017/11/16 全球购物
财务管理专业毕业生求职信范文
2013/09/21 职场文书
2014年实验室工作总结
2014/12/03 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
2015年维修工作总结
2015/04/25 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang
一文弄懂MySQL索引创建原则
2022/02/28 MySQL