Ir al contenido principal

Cómo mostrar información de un API

Objetivo: Esta guía describe una estrategia eficiente para comunicar datos entre un componente padre y sus componentes hijos en una aplicación Angular. La estrategia se basa en el uso de observables y el operador async para lograr una comunicación unidireccional de datos.

Pasos para Implementar la Estrategia:

  1. Componente Padre:

    • El componente padre es responsable de obtener y gestionar los datos que se compartirán con los componentes hijos.
    • Utiliza el servicio DataService encargado de realizar consultas HTTP y obtener observables de los datos.
    • Expone los observables de datos como propiedades públicas en el componente padre.

    Ejemplo:

    import { Component } from '@angular/core';
    import { DataService } from './data.service';
    import { Observable } from 'rxjs';
    
    @Component({
      selector: 'app-parent',
      template: `
        <app-child *ngIf="datos$ | async as datos; else #loadingChild" [data]="datos"></app-child>
        <ng-template #loadingChild>
          <!-- Template opcional de espera -->
        </ng-template>
      `
    })
    export class ParentComponent {
      datos$: Observable<any>;
    
      constructor(private dataService: DataService) {
        this.datos$ = this.dataService.obtenerDatos();
      }
    }
  2. Componente Hijo:

    • El componente hijo recibe los datos del componente padre a través de un input.
    • Utiliza el operador async en la plantilla para suscribirse automáticamente al observable y actualizar la vista cuando los datos cambien.

    Ejemplo:

    import { Component, Input } from '@angular/core';
    
    @Component({
      selector: 'app-child',
      template: `
        <div *ngFor="let item of data">
          {{ item | json }}
        </div>
      `
    })
    export class ChildComponent {
      @Input() data: any[];
    }
  3. Beneficios de la Estrategia:

    • La estrategia utiliza observables para lograr una comunicación unidireccional de datos, siguiendo las mejores prácticas de Angular.
    • Los observables y el operador async manejan automáticamente las suscripciones y las actualizaciones de datos en la vista, lo que reduce la posibilidad de errores y fugas de memoria.
    • El enfoque promueve la modularidad y el mantenimiento del código al abstraer la comunicación entre componentes y mantener un flujo claro de datos.

Conclusión:

La estrategia de comunicación de datos entre componentes padre e hijos utilizando observables y el operador async en Angular es una práctica efectiva y eficiente. Al seguir esta estrategia, se logra un flujo de datos coherente, un código limpio y modular, y una experiencia de desarrollo más fluida en la construcción de aplicaciones Angular.

Comentarios

Entradas más populares de este blog

[TUTORIAL] Cómo crear máquina tragamonedas con Angular

Objetivo:   En esta ocasión vamos a explicar una de las maneras más sencillas de crear una máquina tragamonedas para Angular Beneficios Disponible para todos los módulos de la aplicación Créditos configurables Costo por juego personalizado Listado de emojis personalizable Antes de empezar necesitamos Proyecto existente versión Angular 17 o superior Node Js compatible Conocimientos recomendados Angular standalone components Angular signals HTML y CSS Definimos el componente import { CommonModule } from '@angular/common' ; import { Component , OnInit , input , model , signal } from '@angular/core' ; import { winningCombinations } from '../../consts/winningCombinations' ; @ Component ( { standalone : true , imports : [ CommonModule ] , selector : 'app-slot-machine' , templateUrl : './slot-machine.component.html' , styleUrl : './slot-machine.component.css' } ) export class SlotMachineComponent implem...

Por qué empecé a usar dos bases de datos: Aumentando el rendimiento para aplicaciones de alto tráfico

Introducción El día, analizaremos el uso  de dos bases de datos , una estrategia que ha ganado popularidad en el manejo de grandes volúmenes de datos, especialmente en aplicaciones de alto tráfico que demandan un rendimiento superior para las consultas. ¿Cómo mejora esta arquitectura el rendimiento de las consultas? La clave reside en la separación de las operaciones de lectura y escritura en dos bases de datos independientes. La base de datos de solo lectura , optimizada para consultas rápidas, almacena una copia replicada de los datos actualizados. Esto permite atender las consultas de manera eficiente sin afectar el rendimiento de las actualizaciones, que se realizan en la base de datos de escritura . Beneficios adicionales de la arquitectura de dos bases de datos: Mayor escalabilidad: Permite escalar la base de datos de escritura de forma independiente para manejar altos volúmenes de actualizaciones sin afectar el rendimiento de las consultas. Mayor disponibilidad: Si la ...

Instalar node js 16 [Linux] y otras versiones

Descargar paquete: curl -sL https://deb.nodesource.com/setup_16.x | sudo bash - Instalar              sudo apt-get install nodejs -y  Otras versiones disponibles: curl -sL https://deb.nodesource.com/setup_20.x | sudo bash - curl -sL https://deb.nodesource.com/setup_18.x | sudo bash - curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -