Tribalyte Technologies Tribalyte Technologies
  • Inicio
  • Misión y visión
  • Nuestros expertos
  • Nuestras soluciones
  • Casos de éxito
  • Blog
  • Contáctanos
  • Únete al equipo
Tribalyte Technologies Tribalyte Technologies
  • Inicio
  • Misión y visión
  • Nuestros expertos
  • Nuestras soluciones
  • Casos de éxito
  • Blog
  • Contáctanos
  • Únete al equipo
Sep 11

Lazy loading en Angular 9

  • septiembre 11, 2020
  • Patricia Camacho
  • Consejos tecnológicos, Desarrollo de software, Tecnologías

Hoy vamos a ver cómo podemos utilizar el patrón de «lazy loading» en nuestra aplicación Angular para conseguir que esta cargue más rápidamente y mejorar la experiencia del usuario.

Index

  • 1 ¿Qué es «lazy loading»?
  • 2 Configurar la aplicación
  • 3 Verificar Lazy-loading

¿Qué es «lazy loading»?

«Lazy loading» (o «carga asíncrona» o «carga diferida») es una técnica que se utiliza en Angular y consiste en retrasar la carga o inicialización de los objetos al momento de su utilización. Esto mejora el rendimiento de las aplicaciones, puesto que, cuando iniciamos una aplicación Angular, se cargan los componentes que se encuentren en el módulo principal app.module.ts y con Lazy loading solo se cargan los que se necesiten al inicio de la aplicación, el resto se cargan mediante el motor de «routing» interno.

 

Configurar la aplicación

En otras entradas del blog ya hemos visto cómo usar el CLI de Angular para crear proyectos, pero ahora vamos a ver cómo crear un proyecto Angular con Lazy loading. Para ello tenemos que añadir –routing cuando generemos el proyecto, ejecutando el siguiente comando:

$ ng new customer-app --routing


Donde customer-app será el nombre de la aplicación. Esto generará el archivo app-routing.module.ts, que es un módulo de ruta listo para funcionar.

Para usar la opción --routing se requiere Angular/CLI version 8.1 o superior.

A continuación, necesitamos un módulo con un componente al que enrutar. Para hacer uno ejecutamos el siguiente comando:

$ ng generate module customers --route customers --module app.module

Esto crea el nuevo módulo de carga asíncrona "CustomersModule" definido en "customers.module.ts" y el módulo de enrutamiento "CustomersRoutingModule" definido en "customers-routing.module.ts". Vamos a mostrar un ejemplo de cargar un componente con carga asíncrona:

En el fichero "customers-routing.module.ts" creamos la rutas hija para cargar el componente haciendo uso de "forChild()" para especificar que ese módulo va a servir rutas hijas:

import { NgModule } from ‘@angular/core’;
import { Routes, RouterModule } from ‘@angular/router’;

import { Componente } from ‘./componente.component’;

const routes: Routes = [
 {
 path: ‘’, component: Componente
 }

];

@NgModule({
 imports: [RouterModule.forChild(routes)],
 exports: [RouterModule]
})

export class CustomersRoutingModule { }

En el fichero customers.module.ts tendremos importado el CustomersRoutingModule:

import { NgModule } from ‘@angular/core’;
import { CommonModule } from ‘@angular/common’;
import { CustomersRoutingModule } from ‘./customer-routing.module’;
import { Componente } from ‘./componente.component’;

@NgModule({
 declarations: [Componente],
 imports: [
 CommonModule,
CustomersRoutingModule
 ]
})

export class CustomersModule { }

En app-routing.module.ts, en lugar de cargar el componente, directamente pondremos la ruta de este nuevo módulo mediante loadChildren() de la siguiente forma:

import { NgModule } from ‘@angula/core’;
import { Routes, RouterModule } from ‘@angular/router’;

const routes: Routes = [
 {
 path: ‘customers’,
 loadChildren: () => import(‘./customers/customers.module’).then(m => m.CustomersModule)
 }
];

@NgModule({
 imports: [RouterModule.forRoot(routes)],
 exports: [RouterModule]
})

export class AppRoutingModule { }

En nuestro "app.component.ts" pondremos un botón para el link a ese componente:

<button routerLink= “/componente””>Componente</button>

<router-outlet></router-outlet>

 

Verificar Lazy-loading

Para probar si el componente se está cargando con lazy-loading basta con ejecutar el comando:

$ ng serve

Este comando abrirá la aplicación en "http://localhost:4200" y solo tendremos que abrir la consola del navegador e ir a la pestaña “Red”. Cuando hagamos click sobre el botón veremos cómo se carga el componente.

Espero que os haya servido para conocer cómo funciona Lazy-loading y que podáis introducirlo en vuestros proyectos. 

¡Nos vemos en el siguiente post!

Artículos Relacionados:

  • Selenium-IDE-Welcome-TribalyteIntroducción a Selenium IDE
  • ReactJS | Tutorial y 12 mejores prácticas [webinar gratis] | Tribalyte TechnologiesReactJS | Tutorial y 12 mejores prácticas [webinar gratis]
  • Blockchain: Tribalyte Technologies socio de AlastriaTribalyte Technologies forma parte de Alastria
  • Devops : Qué es y cómo implementarlo - Tribalyte Technologies | Alessandro Barbera FormicaIntroducción a DevOps. Qué es y cómo implementarlo
  • tribalyte_brightbyte1Lanzamiento de BrightByte Cloud
  • Facebook
  • Twitter
  • LinkedIn
  • E-Mail

About The Author

Patricia es ingeniera informática, le apasiona el desarrollo web y las nuevas tecnologías. Desarrolla aplicaciones con blockchain basadas en TypeScript, Angular e Ionic. Su objetivo es seguir aprendiendo y formándose día a día como desarrolladora de software y blockchain.

Comments are closed.

ELIGE UNA CATEGORÍA

  • Blockchain
  • Consejos tecnológicos
  • Desarrollo de aplicaciones
  • Desarrollo de software
  • Sistema embebido
  • Tecnologías
  • Uncategorized

Una compañía dedicada al desarrollo de apps, software y soluciones embebidas para empresas.

SOCIOS

Contacto

Glorieta de Quevedo 8 6º2
28015 Madrid (ESPAÑA)
Phone: +34 919 049 820 E-Mail: contact@tribalyte.com Web: www.tribalyte.com
Sello PYME INNOVADORA 21/01/2025
PYME INNOVADORA
Válido hasta el 21 de enero de 2025
escudo de MEIC 21/01/2025

AYUDA

  • Política de privacidad
  • Política de calidad
  • Política de seguridad
  • Términos de uso

CERTIFICACIONES

⠀⠀⠀⠀⠀⠀⠀⠀⠀

SUBVENCIONES

Tribalyte Technologies S.L. ha    conseguido la ayuda C007/20-ED de Red.es para el impulso y la promoción de actividades de I+i y para el fomento de la inversión empresarial para desarrollar el proyecto iPatia. Así mismo, valoramos muy positivamente la contribución del FEDER, principal fondo de la política de cohesión europea, por lo que supone de impulso a nuestro trabajo y en consecuencia al crecimiento económico y la creación de empleo de esta región y de España en su conjunto.
Esta página web utiliza cookies para mejorar su experiencia de usuario y para recabar estadísticas anónimas de uso. Aceptar Más información