浅谈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 设置文本框中焦点的位置
Nov 20 Javascript
基于jquery的图片的切换(以数字的形式)
Feb 14 Javascript
一张Web前端的思维导图分享
Jul 03 Javascript
Bootstrap选项卡动态切换效果
Nov 28 Javascript
解决浏览器会自动填充密码的问题
Apr 28 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
Sep 18 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
Sep 01 Javascript
vue-cli项目修改文件热重载失效的解决方法
Sep 19 Javascript
小程序:授权、登录、session_key、unionId的详解
May 15 Javascript
详解webpack的clean-webpack-plugin插件报错
Oct 16 Javascript
vue 实现element-ui中的加载中状态
Nov 11 Javascript
微信小程序实现底部弹出模态框
Nov 18 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实现ping
2006/10/09 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
[00:09]DOTA2新版本PA至宝特效动作展示
2014/11/19 DOTA
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python金融数据可视化汇总
2017/11/17 Python
python 获取字符串MD5值方法
2018/05/29 Python
python使用requests.session模拟登录
2019/08/09 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
2014年圣诞节倒计时网页的制作过程
2014/12/05 HTML / CSS
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
优秀的毕业生的自我评价
2013/12/12 职场文书
教育局长自荐信范文
2013/12/22 职场文书
消防工作实施方案
2014/06/09 职场文书
农业项目建议书
2014/08/25 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS
JS代码编译器Monaco使用方法
2021/06/11 Javascript