logoImagina
iconCurso
Te recomendamos nuestro curso de Angular 18 Avanzado
Descubre el curso de Angular 18 Avanzado
Ir al curso

Directivas ngIf y ngFor de Angular

iconImage
Escrito por Equipo de Imagina
Actualizado el 10-10-2024
Duración: 15 min

En el complejo ecosistema de Angular, trabajar con directivas se convierte en un pilar fundamental para construir aplicaciones interactivas y eficientes. Las directivas ngIf y ngFor son dos herramientas poderosas que, cuando se utilizan adecuadamente, pueden mejorar significativamente tanto la interactividad como el rendimiento de tus proyectos. En este artículo, vamos a sumergirnos en el mundo de las directivas de Angular, poniendo especial énfasis en ngIf y ngFor, para descubrir cómo pueden ayudarnos a crear aplicaciones más dinámicas y reactivas.

Programador usando Directivas ngIf y ngFor en Angular

¿Qué son las Directivas en Angular?

En Angular, las directivas son clases que permiten agregar comportamientos adicionales a elementos del DOM o incluso transformar estos elementos y su contenido. Piensa en las directivas como instrucciones que puedes aplicar a los elementos de tu página para manipular sus propiedades, estructura, o incluso su comportamiento en tiempo de ejecución.

Tipos de Directivas en Angular

Angular ofrece tres tipos principales de directivas:

  • Directivas de componentes: Cada componente en Angular es técnicamente una directiva con una plantilla. Estas directivas permiten asociar una lógica de controlador y una plantilla a un elemento del DOM.
  • Directivas de atributos: Cambian la apariencia o el comportamiento de un elemento, componente o incluso otra directiva.
  • Directivas estructurales: Modifican la estructura del DOM al agregar, eliminar o manipular elementos. Aquí es donde ngIf y ngFor entran en juego.

Las directivas son fundamentales porque nos permiten crear aplicaciones interactivas sin sobrecargar con código Javascript puro. Angular maneja la complejidad detrás de escena, permitiéndonos enfocarnos en la lógica de nuestra aplicación.

¿Qué es la directiva ngIf?

La directiva ngIf en Angular es una herramienta poderosa que nos permite mostrar u ocultar elementos del DOM de forma dinámica según el valor de una expresión booleana. En términos simples, esta directiva evalúa si una condición es verdadera o falsa, y en función de eso, decide si renderiza un bloque de HTML o lo elimina por completo del DOM.

El uso de ngIf es muy común cuando queremos que ciertos componentes o elementos aparezcan únicamente bajo condiciones específicas. Por ejemplo, podríamos querer mostrar un mensaje de bienvenida solo si un usuario ha iniciado sesión, o un mensaje de advertencia si falta información obligatoria en un formulario.

Sintaxis de ngIf

La sintaxis de ngIf es sencilla, lo que lo convierte en una herramienta accesible incluso para desarrolladores que están comenzando con Angular. La estructura básica es la siguiente:

<div *ngIf="condición">
  <!-- Contenido que será mostrado si la condición es verdadera -->
</div>

Aquí, la condición es una expresión que se evalúa como verdadera o falsa. Si la condición es verdadera, el contenido dentro del div será renderizado; de lo contrario, el elemento será eliminado del DOM.

Ejemplos de uso de ngIf

La directiva ngIf es particularmente útil en situaciones donde necesitamos realizar control de flujos en nuestra interfaz. Aquí hay algunos casos prácticos donde ngIf puede ser de gran ayuda:

  • Mostrar mensajes condicionales: En formularios extensos, es habitual querer mostrar mensajes de validación solo cuando ciertos campos no han sido rellenados correctamente. Con ngIf, podemos controlar la visualización de estos mensajes de error de forma efectiva.
<div *ngIf="!emailValido" class="error">Por favor, introduce un correo válido</div>
  • Cargar elementos bajo ciertas condiciones: En aplicaciones con muchos datos, podemos hacer que ciertas secciones de la página se carguen solo cuando la información necesaria esté disponible. Esto no solo optimiza la experiencia de usuario, sino que también mejora el rendimiento, ya que evita cargar elementos innecesarios.
<section *ngIf="datosCargados">
  <h2>Datos del usuario</h2>
  <p>Nombre: {{ usuario.nombre }}</p>
</section>
  • Implementar comportamientos alternativos con else y then: En casos donde necesitamos mostrar un componente alternativo si la condición no se cumple, podemos combinar ngIf con else. Por ejemplo:
<ng-template #loading> Cargando datos... </ng-template>

<div *ngIf="datosDisponibles; else loading">
  <p>Los datos han sido cargados correctamente.</p>
</div>

En este ejemplo, si la variable datosDisponibles es falsa, se mostrará el mensaje de "Cargando datos...". Si es verdadera, se mostrará el contenido del div.

¿Qué es la directiva ngFor?

La directiva ngFor es otra herramienta esencial en Angular, utilizada para iterar sobre listas y colecciones de datos. Su principal función es permitirnos renderizar un conjunto de elementos en función de una colección, como un array o una lista de objetos. En lugar de tener que escribir manualmente cada elemento, ngFor nos permite generar dinámicamente tantos elementos como sea necesario, según el número de elementos en la colección.

En términos prácticos, ngFor recorre cada elemento de una lista y lo renderiza en la plantilla, lo que resulta muy útil cuando trabajamos con datos obtenidos de una API o con colecciones que cambian dinámicamente. Esta directiva es una de las más poderosas cuando necesitamos gestionar grandes volúmenes de información visual en Angular.

Sintaxis de ngFor

La sintaxis de ngFor es simple y directa. Utiliza la palabra clave *ngFor seguida de una expresión que define la colección a iterar y un alias para el elemento actual en cada iteración. La estructura básica es la siguiente:

<li *ngFor="let item of items">
  {{ item.nombre }}
</li>

En este ejemplo, la directiva ngFor recorre la lista items y, por cada elemento de la lista, genera un

  • que contiene el valor de item.nombre.

    Ejemplos de ngFor en Angular

    ngFor es increíblemente versátil y se puede aplicar en una amplia variedad de situaciones. A continuación, te presentamos algunos ejemplos prácticos donde esta directiva facilita el desarrollo de aplicaciones:

    • Renderización de listas de productos: Si estás desarrollando una tienda online, puedes utilizar ngFor para listar todos los productos disponibles en la base de datos de una forma sencilla y dinámica.
    <ul>
      <li *ngFor="let producto of productos">
        {{ producto.nombre }} - Precio: {{ producto.precio }}
      </li>
    </ul>

    En este caso, por cada objeto en la colección productos, se genera un

  • que muestra el nombre y el precio del producto.

    • Renderización de componentes anidados: ngFor no solo se limita a iterar sobre elementos HTML simples; también puede utilizarse para renderizar componentes completos dentro de una plantilla.
    <app-producto *ngFor="let producto of productos" [producto]="producto"></app-producto>

    En este ejemplo, ngFor se utiliza para iterar sobre la lista de productos y para renderizar un componente app-producto por cada elemento en la lista. Cada componente recibe como entrada el objeto producto.

    • Listas con control avanzado de índices y condiciones: A veces, no solo es importante iterar sobre una colección, sino también aplicar lógica adicional, como mostrar solo elementos pares o controlar si es el último elemento. Con ngFor, esto es posible:
    <ul>
      <li *ngFor="let item of items; let last = last">
        {{ item.nombre }} <span *ngIf="last"> (Último)</span>
      </li>
    </ul>

    Aquí estamos utilizando last, una variable que ngFor genera automáticamente para indicar si el elemento actual es el último de la lista.

    ngIf vs ngFor

    La directiva ngIf es ideal cuando necesitamos condicionar la aparición de un elemento o componente específico en nuestra aplicación. Si el flujo lógico de nuestra aplicación requiere que algo solo se muestre cuando una condición se cumple, ngIf es la herramienta adecuada.

    Por ejemplo, ngIf se utilizaría en situaciones como:

    • Mostrar un mensaje de error solo si los datos no son válidos.
    • Renderizar un componente de inicio de sesión si el usuario no está autenticado.
    • Ocultar un elemento hasta que se hayan cargado los datos desde un servidor.

    Por otro lado, ngFor es la opción perfecta cuando necesitamos recorrer una colección de elementos y generar un conjunto de componentes o etiquetas HTML a partir de ella. Se debe utilizar ngFor en escenarios como:

    • Mostrar una lista de productos, usuarios o cualquier otra colección de datos que necesitemos visualizar dinámicamente.
    • Crear tablas o listas donde el número de filas depende de la cantidad de datos disponibles.
    • Renderizar múltiples instancias de un mismo componente, cada una con un conjunto de datos diferente.

    La clave para saber cuándo utilizar ngIf o ngFor está en preguntarse si necesitamos mostrar u ocultar un elemento en función de una condición (para eso utilizamos ngIf), o si necesitamos crear múltiples elementos basados en una lista de datos (para lo cual utilizamos ngFor).

    Conviértete en un Experto en Angular

    Hemos recorrido un camino detallado a través de las directivas ngIf y ngFor de Angular, dos herramientas esenciales para cualquier desarrollador que busque crear aplicaciones dinámicas y reactivas. Desde entender su funcionamiento básico hasta aplicar técnicas avanzadas, estas directivas son cruciales para optimizar la interactividad y el rendimiento de tus proyectos.

    Pero esto es solo la punta del iceberg. Angular es un ecosistema rico y complejo, lleno de posibilidades para quienes deseen profundizar en el desarrollo de aplicaciones web modernas. Si eres nuevo en Angular y deseas aprender más sobre este ecosistema te recomendamos nuestro curso de Angular para empresas.

    Por último, te invitamos a explorar los mejores cursos para empresas y descubrir la formación que mejor se adapte a las necesidades de tu organización.

    Descubre la formación a tu medida
    Rellena el formulario para obtener más información sobre los cursos.
    Tamaño de la empresa *
    Términos y condiciones *
    Tutoriales relacionados
    Listado de Todas las Versiones de .NET
    Explora en profundidad todas las versiones de .NET, desde su creación hasta las últimas actualizaciones
    Cómo hacer una Aplicación de Blog con Angular y Node.js
    Descubre cómo crear tu propia aplicación de blog con Angular y Node.js. Aprende a desarrollar y deslumbra con tus habilidades de programación.
    ¿Qué es el Web Scraping y Cómo Funciona?
    Aprende qué es el web scraping y cómo se utiliza y descubre cómo recopilar información en línea para análisis de datos o investigación.
    Listado de Todas las Versiones de Angular
    Descubre Todas las Versiones del Framework para Aplicaciones Web, Angular: Desde la Primera Versión (AngularJS) hasta la Última (Angular 18)
    Tabla de contenido
    ¿Qué son las Directivas en Angular?
    Tipos de Directivas en Angular
    ¿Qué es la directiva ngIf?
    Sintaxis de ngIf
    Ejemplos de uso de ngIf
    ¿Qué es la directiva ngFor?
    Sintaxis de ngFor
    Ejemplos de ngFor en Angular
    ngIf vs ngFor
    Conviértete en un Experto en Angular
    Descubre la formación a tu medida
    Rellena el formulario para obtener más información sobre los cursos.
    Tamaño de la empresa *
    Términos y condiciones *