Introducción

En Angular, los componentes son la piedra angular de cualquier aplicación. Un componente en Angular es una pieza de la interfaz de usuario (UI) que se puede reutilizar y que encapsula su propia lógica, plantilla y estilos. En esta sección, aprenderemos qué son los componentes, cómo funcionan y por qué son esenciales para el desarrollo de aplicaciones en Angular.

¿Qué es un Componente?

Un componente en Angular es una clase TypeScript que interactúa con una plantilla HTML para definir una vista. Cada componente tiene tres partes principales:

  1. Clase: Define la lógica y los datos del componente.
  2. Plantilla: Define la estructura y el contenido HTML del componente.
  3. Estilos: Define los estilos CSS específicos del componente.

Estructura de un Componente

Un componente típico en Angular se ve así:

import { Component } from '@angular/core';

@Component({
  selector: 'app-ejemplo',
  templateUrl: './ejemplo.component.html',
  styleUrls: ['./ejemplo.component.css']
})
export class EjemploComponent {
  titulo: string = 'Hola, Angular!';
}
  • @Component: Es un decorador que marca una clase como un componente Angular y proporciona metadatos sobre el componente.
  • selector: Es el nombre del elemento HTML que representa el componente.
  • templateUrl: Es la ruta al archivo HTML que define la plantilla del componente.
  • styleUrls: Es la ruta al archivo CSS que define los estilos del componente.

Plantilla del Componente

La plantilla de un componente define su estructura HTML. Aquí hay un ejemplo de una plantilla simple:

<!-- ejemplo.component.html -->
<h1>{{ titulo }}</h1>

En este ejemplo, {{ titulo }} es una expresión de interpolación que muestra el valor de la propiedad titulo de la clase del componente.

Estilos del Componente

Los estilos de un componente definen su apariencia. Aquí hay un ejemplo de un archivo de estilos:

/* ejemplo.component.css */
h1 {
  color: blue;
}

Ciclo de Vida de un Componente

Los componentes en Angular tienen un ciclo de vida que incluye varias etapas desde su creación hasta su destrucción. Angular proporciona varios métodos de ciclo de vida que puedes usar para ejecutar lógica en diferentes etapas del ciclo de vida de un componente.

Métodos del Ciclo de Vida

  1. ngOnInit: Se llama una vez que el componente ha sido inicializado.
  2. ngOnChanges: Se llama cada vez que se cambian las propiedades de entrada vinculadas.
  3. ngOnDestroy: Se llama justo antes de que el componente sea destruido.

Ejemplo:

import { Component, OnInit, OnDestroy } from '@angular/core';

@Component({
  selector: 'app-ejemplo',
  templateUrl: './ejemplo.component.html',
  styleUrls: ['./ejemplo.component.css']
})
export class EjemploComponent implements OnInit, OnDestroy {
  titulo: string = 'Hola, Angular!';

  ngOnInit() {
    console.log('Componente inicializado');
  }

  ngOnDestroy() {
    console.log('Componente destruido');
  }
}

Ejercicio Práctico

Objetivo

Crear un componente simple que muestre un mensaje de bienvenida y cambie el color del texto al hacer clic en un botón.

Pasos

  1. Crear el Componente:

    • Usa Angular CLI para generar un nuevo componente.
    ng generate component bienvenida
    
  2. Modificar la Clase del Componente:

    • Abre bienvenida.component.ts y agrega una propiedad para el mensaje y un método para cambiar el color del texto.
    import { Component } from '@angular/core';
    
    @Component({
      selector: 'app-bienvenida',
      templateUrl: './bienvenida.component.html',
      styleUrls: ['./bienvenida.component.css']
    })
    export class BienvenidaComponent {
      mensaje: string = 'Bienvenido a Angular!';
      color: string = 'black';
    
      cambiarColor() {
        this.color = this.color === 'black' ? 'blue' : 'black';
      }
    }
    
  3. Modificar la Plantilla del Componente:

    • Abre bienvenida.component.html y agrega el HTML para mostrar el mensaje y el botón.
    <h1 [style.color]="color">{{ mensaje }}</h1>
    <button (click)="cambiarColor()">Cambiar Color</button>
    
  4. Modificar los Estilos del Componente:

    • Abre bienvenida.component.css y agrega estilos si es necesario.
    h1 {
      font-family: Arial, sans-serif;
    }
    
    button {
      margin-top: 10px;
    }
    
  5. Incluir el Componente en la Aplicación:

    • Abre app.component.html y agrega el selector del nuevo componente.
    <app-bienvenida></app-bienvenida>
    

Solución

El código completo del componente BienvenidaComponent debería verse así:

bienvenida.component.ts:

import { Component } from '@angular/core';

@Component({
  selector: 'app-bienvenida',
  templateUrl: './bienvenida.component.html',
  styleUrls: ['./bienvenida.component.css']
})
export class BienvenidaComponent {
  mensaje: string = 'Bienvenido a Angular!';
  color: string = 'black';

  cambiarColor() {
    this.color = this.color === 'black' ? 'blue' : 'black';
  }
}

bienvenida.component.html:

<h1 [style.color]="color">{{ mensaje }}</h1>
<button (click)="cambiarColor()">Cambiar Color</button>

bienvenida.component.css:

h1 {
  font-family: Arial, sans-serif;
}

button {
  margin-top: 10px;
}

app.component.html:

<app-bienvenida></app-bienvenida>

Conclusión

En esta sección, hemos aprendido qué son los componentes en Angular, cómo se estructuran y cómo funcionan. También hemos explorado el ciclo de vida de un componente y creado un componente simple como ejercicio práctico. Los componentes son fundamentales para construir aplicaciones modulares y reutilizables en Angular. En la próxima sección, profundizaremos en cómo crear componentes y cómo interactúan entre sí.

Curso de Angular

Módulo 1: Introducción a Angular

Módulo 2: Componentes de Angular

Módulo 3: Enlace de Datos y Directivas

Módulo 4: Servicios e Inyección de Dependencias

Módulo 5: Enrutamiento y Navegación

Módulo 6: Formularios en Angular

Módulo 7: Cliente HTTP y Observables

Módulo 8: Gestión de Estado

Módulo 9: Pruebas en Angular

Módulo 10: Conceptos Avanzados de Angular

Módulo 11: Despliegue y Mejores Prácticas

© Copyright 2024. Todos los derechos reservados