Lazy Loading
Lazy Loading
Angular?
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, 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
específico.
Vamos a crear una aplicación con dos componentes (Battle y Search) que serán
llamados por un menú, donde hay un componente llamado (Admin) que es nuestra
base.
Una mala práctica que aplicamos a la hora de empezar a programar con este
framework es que por cada componente que creamos se carga en el app.module.ts y
se llama a cada componente en el app-routing.module.ts
app.module.ts
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.
La mejor forma de revertir esto es aplicando Lazy Loading, para esto debemos crear
un module y un router.module por cada componente que queremos utilizar, lo
podemos hacer con el Angular Cli.
$ ng g m modules/battle --routing
$ ng g c modules/battle
$ ng g m modules/search --routing
$ ng g c modules/search
De esta forma nuestro app.module.ts queda más limpio y los demás componentes
serán llamados a medida que serán solicitados por sus respectivas rutas.
Cuando corremos el ng build vemos que no se crea un solo archivo .js donde está
nuestra aplicación, sino el crea por cada módulo un .js (Ver imagen)
En este caso vemos que los .js que empiezan por 4 y 5 son nuestros módulos Battle y
Search.
Lazy Loading nos ayuda a que nuestro usuario final disfrute de nuestra app