angular2自带了lazyload,就是路由的loadChild,要优化ng2项目必不可少。代码已更新到ng-demo ->https://github.com/chenby/ng2-demo

先看一下效果(我随便写的ng2的demo)--这是主页————

可以看到下面,有关4.4M,没有图片被加载。(刷新要强制刷新,避免浏览器缓存);

打开/h路由,然后强制刷新----

有图片请求,资源成了4.9M。

打开我们的app.module.ts

写好主模块的路由,我这里,比如这样:

主要就是一个loadChildren属性,正常的路由是下面那个/a,是component属性,在加载的时候就直接加载了这个component。loadChildren路由就是要写明要懒加载的路径是什么。

#前面是该模块的地址,#后面是该模块的导出--子模块。文件目录如下--

要懒加载的lazy模块就在lazy文件夹里。在主模块里面,我们要做的就这么多。注意,不要在主模块里引入要懒加载的文件,否则会让懒加载没有意义。

然后在lazy文件夹里写lazy.module.ts,lazy模块,lazy.components.ts,lazy模块的视图组件。这个视图组件就是被懒加载的内容。

我用的angular-cli,命令运行-

ng g module lazy

生成lazy模块。

lazy.components.ts

import { Component, OnInit } from '@angular/core';

@Component({
selector: 'lazy',
template:'<h1>lazy</h1> <img src="http://img.zcool.cn/community/01594358b4cf8aa801219c77ef641f.jpg">'
})
export class lazyComponent implements OnInit { constructor() { }
ngOnInit() { } }

网上随便找了个图片来测试模块是否被懒加载了,这个视图就是一个h1的标题和一个还不小的图片。

主要在lazy.module.ts

import { NgModule } from '@angular/core';
import { lazyComponent } from './lazy.components';
import { RouterModule, Routes } from '@angular/router'; const routes: Routes = [
{ path: '', component: lazyComponent }
];
@NgModule({
imports: [
RouterModule.forChild(routes)
],
declarations: [lazyComponent]
})
export class LazyModule { }

我们需要做的就是1,引入视图模块。2,定义路由。3,定义子模块

主要就是这个路由,定义的path:''就是/路由。后面注意定义路由要用forChild。

然后就完成了懒加载。~

另外说一句,子模块的路由是基于主模块的路由,如果刚刚写的是 path:"abc",那么访问/h/abc才有视图展示,否则是空白。

angular2的lazyload初体验的更多相关文章

  1. angular2表单初体验

    1.创建movie模型. 最近对angular2比较感兴趣,跟着官网学习一段,练习了一个表单demo! src/app/movie.ts文件: export class Movie{ construc ...

  2. angular2的管道初体验

    ng管道是应用里面比较重要的一个技术,他涉及很多功能 包括排序过滤 废话不说 直接上代码 新建个文件夹吧这个samplepipe.ts放进去 然后 你要做什么 在里面写管道代码 然后在app.modu ...

  3. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  4. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  5. Spring之初体验

                                     Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...

  6. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  7. 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...

  8. 【Knockout.js 学习体验之旅】(1)ko初体验

    前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...

  9. 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验

    在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...

随机推荐

  1. 使用node写一个简单的页面操作

    let http = require('http'); let urlStr = require('url'); let fs = require('fs'); let path = require( ...

  2. oracle建表流程

    --创建表空间test1 create tablespace test1 datafile 'd:\test1.dbf' size 100m autoextend on next 10m --创建用户 ...

  3. C# Note23: 如何自定义类型使用foreach循环

    前言 在foreach语句代码中,我们经常是对List,Collection,Dictionary等类型的数据进行操作,不过C#允许用户自定义自己的类型来使用foreach语句.那么自定义类型能够使用 ...

  4. nfs+keepalived高可用

    1台nfs主被服务器都下载nfs.keepalived yum install nfs-utils rpcbind keepalived -y 2台nfs服务器nfs挂载目录及配置必须相同 3.在主n ...

  5. delphi 子窗体只能最小化不能关闭的解决方案

    cnpack下载地址:http://www.cnpack.org/showdetail.php?id=726&lang=zh-cn 时候创建的子窗体不能关闭,点关闭按钮时子窗体最小化了. 出现 ...

  6. Arrays类

    package cn.zhou.com; import java.util.Arrays; /* * Arrays 类 ? * * 数组工具类 操作数组! * * Arrays的方法? * * */ ...

  7. 循环神经网络RNN及LSTM

    一.循环神经网络RNN RNN综述 https://juejin.im/entry/5b97e36cf265da0aa81be239 RNN中为什么要采用tanh而不是ReLu作为激活函数?  htt ...

  8. ASP.NET Core Building chat room using WebSocket

    Creating “Login form” We use here simple form where user can insert his or her preferred nick name f ...

  9. Nginx http反向代理流程Proxy_pass模块

    L:88 反向代理代码示列 server { listen ; server_name shop**.com.cn; location /{ proxy_pass http://test/www; p ...

  10. henrylee2cn简单的rpc服务

    server 端package controllers import ( "github.com/henrylee2cn/teleport" "model/system& ...