En esta página
Angular 21: el framework, CLI y primer proyecto
Qué es Angular?
Angular es un framework completo para construir aplicaciones web. A diferencia de librerias como React o Vue, Angular incluye todo lo que necesitas: routing, formularios, HTTP client, testing, SSR e inyección de dependencias.
En su versión 21, Angular ha madurado enormemente:
- Componentes standalone por defecto (sin NgModules)
- Signals como primitiva reactiva principal
- Nuevo control flow en templates (
@if,@for,@switch) - SSR y pre-rendering integrados
- Zoneless change detection (experimental)
Instalar Angular CLI
Angular CLI es la herramienta de linea de comandos para crear y gestionar proyectos:
# Instalar globalmente
npm install -g @angular/cli
# Verificar la versión
ng versiónCrear un proyecto
El comando ng new genera un proyecto completo con todas las configuraciones:
ng new mi-primera-appAngular 21 te preguntara por:
- Formato de estilos (CSS, SCSS, etc.)
- SSR (Server-Side Rendering)
La estructura generada incluye:
mi-primera-app/
src/
app/
app.ts # Componente raiz
app.routes.ts # Rutas de la aplicación
index.html # Punto de entrada HTML
main.ts # Bootstrap de la app
styles.css # Estilos globales
angular.json # Configuración del proyecto
tsconfig.json # Configuración de TypeScript
package.json # DependenciasEl componente raiz
Toda aplicación Angular tiene un componente raiz (App). Es el punto de entrada que contiene el layout principal y el <router-outlet> para renderizar las páginas.
Comandos esenciales del CLI
| Comando | Descripcion |
|---|---|
ng serve |
Servidor de desarrollo con HMR |
ng build |
Compilar para producción |
ng generate component nombre |
Generar un componente |
ng generate service nombre |
Generar un servicio |
ng test |
Ejecutar tests |
ng e2e |
Tests end-to-end |
Angular vs otros frameworks
| Caracteristica | Angular | React | Vue |
|---|---|---|---|
| Tipo | Framework completo | Libreria | Framework progresivo |
| Lenguaje | TypeScript obligatorio | JavaScript/TypeScript | JavaScript/TypeScript |
| Reactividad | Signals | useState/hooks | ref/reactive |
| Routing | Integrado | React Router (externo) | Vue Router (externo) |
| HTTP | HttpClient integrado | fetch/axios (externo) | fetch/axios (externo) |
| DI | Integrado | Context API | provide/inject |
Filosofia de Angular 21
Angular 21 sigue la filosofia de simplicidad sin sacrificar potencia:
- Menos boilerplate — Sin NgModules, sin decoradores extras
- Reactividad granular — Signals reemplazan Zone.js gradualmente
- Rendimiento por defecto — OnPush, lazy loading, SSR integrado
- Developer experience — CLI potente, mensajes de error claros, HMR rápido
Práctica
- Crea tu primer proyecto: Ejecuta
ng new mi-practicaen la terminal y explora la estructura de archivos generada. Identifica el componente raiz y el archivo de rutas. - Modifica el componente raiz: Cambia el titulo en
app.tsy agrega un segundo enlace de navegacion en el template. Verifica los cambios conng serve. - Genera un componente: Usa
ng generate component saludopara crear un nuevo componente y renderizalo dentro del template del componente raiz.
En la siguiente leccion aprenderemos a crear componentes standalone, la unidad fundamental de Angular.
import { Component, ChangeDetectionStrategy } from '@angular/core';
import { RouterOutlet } from '@angular/router';
@Component({
selector: 'app-root',
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [RouterOutlet],
template: `
<header>
<h1>{{ título }}</h1>
<nav>
<a routerLink="/">Inicio</a>
<a routerLink="/about">Acerca de</a>
</nav>
</header>
<main>
<router-outlet />
</main>
`,
styles: `
header {
display: flex;
align-items: center;
gap: 1rem;
padding: 1rem;
}
nav { display: flex; gap: 0.5rem; }
`,
})
export class App {
readonly título = 'Mi primer proyecto Angular';
}
Inicia sesión para guardar tu progreso