Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Images haven’t loaded yet. Please exit printing, wait for images to load, and try to
¿Cómo implementar Lazy Loading
print again.
en Angular?
Henry Bravo Follow
Nov 18, 2018 · 4 min read
Una de las buenas prácticas que nos provee este gran framework es la
carga de módulos mediante Lazy Loading.
Esto significa que obtiene los datos o procesa los objetos solamente
cuando se necesitan, no antes. Esto se debe a que si se obtiene todos los
datos antes de usarlos puede tener como resultado una mala
experiencia de usuario, esto es muy importante del lado del frontend,
https://medium.com/@HenryGBC/cómo-implementar-lazy-loading-en-angular-74b6e85d021f 1/8
23/5/2019 ¿Cómo implementar Lazy Loading en Angular? – Henry Bravo – Medium
porque sabemos que toda la carga es del lado del cliente, modularizar y
diferir cargas ayuda a la aplicación a enfocarse en un código en
especifico.
app.module.ts
@NgModule({
declarations: [
AppComponent,
AdminComponent,
BattleComponent,
SearchComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
https://medium.com/@HenryGBC/cómo-implementar-lazy-loading-en-angular-74b6e85d021f 2/8
23/5/2019 ¿Cómo implementar Lazy Loading en Angular? – Henry Bravo – Medium
app-routing.module.ts
Es una mala práctica, porque por ejemplo, si vamos a la ruta Battle nos
carga todos los componentes que creamos y en una aplicación más
grande vamos a ver que el rendimiento es super malo.
$ ng g m modules/battle --routing
$ ng g c modules/battle
$ ng g m modules/search --routing
$ ng g c modules/search
• g: Generate
• m: Modulo
• c: Componente
https://medium.com/@HenryGBC/cómo-implementar-lazy-loading-en-angular-74b6e85d021f 3/8
23/5/2019 ¿Cómo implementar Lazy Loading en Angular? – Henry Bravo – Medium
|____battle-routing.module.ts
|____battle.component.css
|____battle.component.html
|____battle.component.spec.ts
|____battle.component.ts
|____battle.module.ts
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
https://medium.com/@HenryGBC/cómo-implementar-lazy-loading-en-angular-74b6e85d021f 4/8
23/5/2019 ¿Cómo implementar Lazy Loading en Angular? – Henry Bravo – Medium
path: 'battle',
loadChildren:
'./modules/battle/battle.module#BattleModule'
},
{
path: 'search',
loadChildren:
'./modules/search/search.module#SearchModule'
}
]
},
{ path: '**', redirectTo: 'battle' },
];
En este caso vemos que los .js que empiezan por 4 y 5 son nuestros
módulos Battle y Search.
https://medium.com/@HenryGBC/cómo-implementar-lazy-loading-en-angular-74b6e85d021f 5/8
23/5/2019 ¿Cómo implementar Lazy Loading en Angular? – Henry Bravo – Medium
Otro caso de uso, podría ser que dentro de nuestro componente Battle
tuviese más componentes hijos y rutas hijas, en este caso el battle-
routing.module.ts quedaría de la siguiente manera.
}
];
https://medium.com/@HenryGBC/cómo-implementar-lazy-loading-en-angular-74b6e85d021f 6/8
23/5/2019 ¿Cómo implementar Lazy Loading en Angular? – Henry Bravo – Medium
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
Lazy Loading nos ayuda a que nuestro usuario final disfrute de nuestra
app :)
https://medium.com/@HenryGBC/cómo-implementar-lazy-loading-en-angular-74b6e85d021f 7/8
23/5/2019 ¿Cómo implementar Lazy Loading en Angular? – Henry Bravo – Medium
https://medium.com/@HenryGBC/cómo-implementar-lazy-loading-en-angular-74b6e85d021f 8/8