美文网首页angular
Angular 6 的预加载与懒加载

Angular 6 的预加载与懒加载

作者: 曼珠沙华_521b | 来源:发表于2019-07-11 10:57 被阅读0次

angular的文件越来越大,导致用户体验差,使用预加载与懒加载

懒加载场景:

应用在启动时,某些模块不需要,就可以在某些模块中使用懒加载
优点:使用懒加载后,只加载必须的模块,可以加快启动速度。
缺点:懒加载时可以提高用户的初始体验,但是在某个模块体积过大时,还是会发生堵塞现象,导致用户的体验下降

预加载场景

当应用启动后,后续功能模块可能会使用,再基础模块加载后,加载其他的预加载模块,这样在点击预加载模块事,体验非常好。

代码

在使用预加载时,要分为几个Module.拆分Module,在这之前要先传创建上3个模块,供预加载使用
在app-routing.module.ts中定义路由模块

path:"index",
component:indexComponent,
children:[
  {
   path:"home",
   loadChildren:"./home/home.module#HomeModule",//懒加载
  data:{preload:true},//预加载判断
  },
  {
   path:"info",
   loadChildren:"./info/info.module#InfoModule",//懒加载
  data:{preload:true},//预加载判断
  },
  {
   path:"pay",
   loadChildren:"./pay/pay.module#PayModule",//懒加载
  data:{preload:true},//预加载判断
  },
]

定义预加载策略


新建预加载文件
selective-preloading-strategy.ts
import {PreloadingStrategy,Route}  from "@angular/router";
import {Observable} from "rxjs";
/**
预加载策略
*/

export class SelectivePreloadingStrategy implements PrelaodingStrategy{
preload(route:Route,laod:Function):Observalbe<any>{
  
return route.data && route.data['preload] ? load() :Observable.of(null)
}
}

需要加载的地方,我们执行load方法。

最后在AppModule中加入这个策略

import {RouterModule,preloadAllModules} from "@angular/router";
import  {SlectivepreloadingStrategy} from "./select/selcetive-preloading-strategy.ts"
appRoutes是app-routing.module.ts中的路由
在imports中导入路由
RouterModule.forRoot(appRoutes,{preloadingStrategy:PreloadAllModules})
并且假如到providers:[SlectivepreloadingStrategy]

版本6.1.1
部分内容借鉴[山高路远]https://www.zhihu.com/people/sxlwar

相关文章

  • Angular 6 的预加载与懒加载

    angular的文件越来越大,导致用户体验差,使用预加载与懒加载 懒加载场景: 应用在启动时,某些模块不需要,就可...

  • 图片懒加载

    懒加载与预加载的基本概念。 懒加载也叫延迟加载:JS图片延迟加载 延迟加载图片或符合某些条件时才加载某些图片。 预...

  • web优化之懒加载和预加载

    懒加载和预加载是常用的web优化的手段。所以我们首先应该明白什么是懒加载和预加载。懒加载:懒加载也加延迟加载,延迟...

  • JS

    JS 懒加载,预加载 概念:懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。预加...

  • 懒加载与预加载

    1.什么是懒加载? 懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张...

  • 前端性能优化

    (1)懒加载与预加载 懒加载的场景 图片进入可视区域之后进行资源请求 减少无效资源的加载 并发加载的资源过多会阻塞...

  • 图片的预加载与懒加载

    图片预加载与懒加载 由名字可以知道,图片的预加载->当用户需要查看图片可以直接从本地缓存中取到(提前加载下来的),...

  • javascript图片懒加载与预加载的分析

    懒加载与预加载的基本概念。 懒加载也叫延迟加载:前一篇文章有介绍:JS图片延迟加载 延迟加载图片或符合某些条件时才...

  • webpack基础使用(五)

    十六、加载构建优化 懒加载 预获取 & 预读取 与 prefetch 指令相比,preload 指令有许多不同之...

  • Angular4-lazyload懒加载

    在Angular4中实现懒加载html、js、css等资源。利用Angular CLI实现懒加载,通过loadCh...

网友评论

    本文标题:Angular 6 的预加载与懒加载

    本文链接:https://www.haomeiwen.com/subject/lehrkctx.html