En Angular, los componentes son bloques reutilizables que combinan lógica y vista, permitiendo construir aplicaciones modulares y mantenibles.
flowchart TD
COMP["@Component (standalone)"] --> META["Metadatos: selector, template, styles"]
COMP --> CLASS["Clase TypeScript"]
CLASS --> SIGNALS["Signals: estado reactivo"]
CLASS --> METHODS["Métodos: gestión de eventos"]
META --> HTML["Plantilla HTML con @if/@for"]
META --> CSS["Estilos encapsulados"]
COMP --> CD["ChangeDetectionStrategy.OnPush (rendimiento)"]
Creación de componentes
Para crear un componente en Angular, utilizamos el comando:
ng generate component mi-componente
Cuando se ejecuta el comando anterior, la CLI de Angular generará automáticamente los siguientes archivos y directorios:
- una nueva carpeta con el nombre del componente en el directorio
src/app, - la clase TypeScript que controla la lógica,
- la plantilla HTML que define la estructura visual,
- el archivo CSS que contiene los estilos específicos del componente y
- el archivo de prueba para realizar pruebas unitarias.

Juntos, estos elementos permiten construir aplicaciones modulares y personalizables.
Estructura de un componente
Un componente en Angular se define utilizando la clase @Component. Esta clase es un decorador que acepta un objeto de metadatos como argumento.
El objeto de metadatos define las propiedades clave del componente, como el selector, la plantilla, los estilos y las animaciones.
A continuación se muestra un ejemplo básico de un componente en Angular:
import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
@Component({
selector: 'app-root',
imports: [RouterOutlet],
templateUrl: './app.component.html',
styleUrl: './app.component.css'
})
export class AppComponent {
title = 'Mi Aplicación Angular';
}
En Angular 21, todos los componentes son standalone por defecto, por lo que no es necesario especificar standalone: true.
Propiedades del decorador @Component
- Selector: Define cómo se utilizará el componente en una plantilla HTML. Puede ser un nombre de elemento, un nombre de atributo, o una clase CSS.
- Template/TemplateUrl: Define la estructura HTML del componente. Puede ser una cadena de HTML directamente en el objeto de metadatos usando
template, o referenciar un archivo HTML externo usandotemplateUrl. - Styles/StyleUrl: Define los estilos CSS para el componente. Puede ser una cadena CSS directamente en el objeto de metadatos usando
styles, o referenciar un archivo CSS externo usandostyleUrl. - Imports: Permite importar otros componentes, directivas o módulos directamente en el componente. En este ejemplo,
imports: [RouterOutlet]se utiliza para incluir elRouterOutlet, lo cual es útil para aplicaciones que utilizan enrutamiento.
Ejemplo de un componente
Clase TypeScript
Supongamos que se desea crear un componente llamado user-profile que muestra la información básica de un usuario.
El siguiente ejemplo demuestra cómo se podría crear este componente en Angular:
// En TypeScript
import { Component } from '@angular/core';
@Component({
selector: 'app-user-profile', // Selector utilizado en el HTML
templateUrl: './user-profile.component.html', // Ruta de la plantilla HTML
styleUrl: './user-profile.component.css' // Ruta de los estilos CSS
})
export class UserProfileComponent {
userName: string = 'Usuario Ejemplo';
userAge: number = 25;
}
La clase UserProfileComponent contiene los datos del usuario y puede tener métodos para manejar eventos o realizar operaciones relacionadas con este componente.
Plantilla HTML
<!-- En el archivo user-profile.component.html -->
<div class="user-profile">
<h2>{{ userName }}</h2>
<p>Edad: {{ userAge }}</p>
</div>
Estilos CSS
/* En el archivo user-profile.component.css */
.user-profile {
border: 1px solid #ccc;
padding: 10px;
background-color: #f5f5f5;
text-align: center;
}
Uso del componente
Una vez creado el componente, se puede utilizar en otras partes de la aplicación mediante su selector, como se muestra a continuación:
<!-- En el archivo src/app/app.component.html -->
<app-user-profile></app-user-profile>
Ejecución de la aplicación
Finalmente, para ejecutar la aplicación, se utiliza el siguiente comando de Angular CLI:
ng serve
Luego, en un navegador web, navegar hacia http://localhost:4200 para observar el componente de user-profile en funcionamiento.
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Angular es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.
Más tutoriales de Angular
Explora más contenido relacionado con Angular y continúa aprendiendo con nuestros tutoriales gratuitos.
Aprendizajes de esta lección
- Comprender del significado y ventajas de los componentes en Angular.
- Dominar la creación de componentes.
- Configurar componentes con el decorador @Component.
- Conocer el contenido de un componente.