Configuración Inicial

1

¿Vale la pena Aprender Angular?

2

Configura tu entorno de desarrollo en Angular

3

Implementa ESLint para código limpio en Angular

4

Optimiza tu código con Prettier en Angular

Quiz: Configuración Inicial

Gestión de Entornos

5

Gestiona múltiples ambientes de desarrollo

6

Configura entornos Staging para pruebas

Quiz: Gestión de Entornos

Nuevas Funcionalidades en Angular

7

Domina la nueva directiva @let en Angular

8

Optimiza imágenes para mejor rendimiento en Angular

9

Crea URLs amigables para SEO en Angular

10

Implementa Input Signal para componentes reactivos

11

Migra de @Input tradicional a Input Signals

12

Usa la nueva output function para eventos en Angular

13

Sincroniza datos con linkedSignal en Angular

14

Gestiona formularios con Model Signal

15

Convierte Observables a Signals con toSignal

16

Implementa toSignal en componentes

17

Simplifica RxJS con RxResource en Angular

18

Maneja recursos con parámetros usando Resource

19

Optimiza Promises con Resource en Angular

20

Crea consultas reactivas con Signal Queries

21

Resuelve problemas comunes de Prettier en Angular

Quiz: Nuevas Funcionalidades en Angular

Server-Side Rendering (SSR) y Navegación

22

Optimiza tu app con los nuevos builders de Angular

23

Implementa Server-Side Rendering (SSR) en Angular

24

Maneja APIs del navegador en entornos SSR

25

Crea páginas de ubicación optimizadas en Angular

26

Mejora rendimiento con Pre-render en Angular

27

Despliega tu aplicación en Firebase Hosting

Quiz: Server-Side Rendering (SSR) y Navegación

Optimización de Rendimiento

28

Optimiza SEO con títulos y metatags efectivos

29

Implementa MetaTags Service para SEO en Angular

30

Mejora UX con Hydration y EventReplay en Angular

31

Crea productos relacionados con Signals

32

Optimiza rendimiento con @defer en Angular

33

Implementa Hydration incremental para mejor UX

34

Optimiza navegación con Server Routing en Angular

35

Maximiza rendimiento con Zoneless en Angular

36

Siguientes pasos en Angular

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Optimiza rendimiento con @defer en Angular

32/36
Recursos

La optimización de rendimiento en Angular es un aspecto fundamental para desarrollar aplicaciones web modernas y eficientes. Mediante técnicas avanzadas como lazy loading y code splitting, podemos mejorar significativamente la experiencia del usuario al reducir los tiempos de carga y optimizar el uso de recursos. Estas estrategias son esenciales tanto para aplicaciones con server-side rendering como para aplicaciones tradicionales de cliente.

¿Qué es el lazy loading y code splitting en Angular?

El lazy loading en Angular es una técnica que permite cargar partes específicas de la aplicación solo cuando son necesarias. Tradicionalmente, este concepto se aplicaba a nivel de rutas, donde cada página cargaba su propio JavaScript específico en lugar de cargar todo el código en el bundle inicial.

El code splitting complementa esta técnica al dividir la aplicación en diferentes "chunks" o fragmentos de JavaScript. Esto significa que:

  • Cada ruta puede tener su propio archivo JavaScript específico (por ejemplo, about.js, products.js)
  • Solo se carga el código necesario cuando el usuario navega a una página específica
  • Se reduce significativamente el tamaño del bundle inicial

Esta estrategia mejora el rendimiento inicial de la aplicación, ya que el usuario no necesita descargar código que posiblemente nunca utilice.

¿Cómo funciona el lazy loading tradicional por rutas?

En el enfoque tradicional de lazy loading en Angular:

  1. La aplicación se divide en módulos por rutas
  2. Cuando el usuario navega a una ruta específica, Angular carga dinámicamente el módulo correspondiente
  3. Esto reduce el tiempo de carga inicial y mejora la experiencia del usuario

Este método ha sido la base de la optimización en Angular durante mucho tiempo, pero las técnicas modernas nos permiten ir más allá.

¿Cómo implementar lazy loading a nivel de componentes?

Las técnicas modernas de JavaScript nos permiten aplicar lazy loading no solo a nivel de rutas, sino también a nivel de componentes individuales dentro de una misma página. Esto es particularmente útil cuando:

  • Una página contiene múltiples componentes pesados
  • Algunos componentes están fuera del viewport inicial
  • Ciertos componentes solo se muestran bajo condiciones específicas

Para implementar esta técnica en Angular, utilizamos la directiva defer:

<div style="margin-bottom: 80vh;">
  <!-- Contenido principal del producto -->
</div>

@defer (on viewport) {
  <app-related-products [products]="relatedProducts"></app-related-products>
} @placeholder {
  <!-- Contenido opcional mientras se carga -->
}

En este ejemplo:

  1. El componente app-related-products solo se cargará cuando entre en el viewport del usuario
  2. El JavaScript asociado a este componente no forma parte del chunk inicial
  3. Si el usuario nunca hace scroll hasta esa sección, el código nunca se cargará

Esta técnica optimiza aún más el rendimiento al cargar componentes específicos solo cuando realmente son necesarios, similar a cómo funciona el lazy loading de imágenes.

¿Qué opciones ofrece la directiva defer?

La directiva defer en Angular ofrece varias opciones para controlar cuándo se carga un componente:

  • on viewport: Carga el componente cuando entra en el viewport del usuario
  • on hover: Carga el componente cuando el usuario pasa el cursor sobre un elemento
  • on interaction: Carga el componente cuando el usuario interactúa con un elemento
  • when: Permite definir una condición personalizada para la carga
  • immediate: Carga el componente tan pronto como el navegador esté desocupado

Estas opciones proporcionan gran flexibilidad para optimizar la carga de componentes según las necesidades específicas de la aplicación.

¿Cuáles son los beneficios del lazy loading a nivel de componentes?

Implementar lazy loading a nivel de componentes ofrece numerosos beneficios:

  • Reducción del tamaño inicial de JavaScript: Solo se carga lo esencial para la visualización inicial
  • Mejora en el tiempo de carga: La página principal se carga más rápido al diferir componentes secundarios
  • Optimización de recursos: Se utilizan los recursos del navegador de manera más eficiente
  • Mejor experiencia de usuario: La interactividad inicial mejora al priorizar los componentes visibles
  • Aplicable a todo tipo de aplicaciones: Funciona tanto en aplicaciones con server-side rendering como en aplicaciones tradicionales de cliente

Esta técnica es especialmente valiosa en aplicaciones complejas con muchos componentes o en aplicaciones de back office con numerosos formularios y elementos interactivos.

El lazy loading a nivel de componentes representa una evolución natural en la optimización de aplicaciones Angular, permitiendo un control más granular sobre cómo y cuándo se carga el código. Al implementar estas técnicas, podemos crear aplicaciones más rápidas, eficientes y con mejor experiencia de usuario, independientemente de si utilizamos server-side rendering o no.

¿Has implementado alguna de estas técnicas en tus proyectos? Comparte tu experiencia en los comentarios y cuéntanos cómo ha mejorado el rendimiento de tus aplicaciones Angular.

Aportes 0

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?