Spanish (Español) translation by Rafael Chavarría (you can also view the original English article)
Angular es un marco de trabajo popular para crear front ends para aplicaciones web y móviles. Todo comenzó con AngularJS 1.x y después AngularJS 2, y ahora finalmente Angular, con las últimas actualizaciones y reparación de errores siendo trabajadas por el equipo de Angular.
Los componentes son una parte importante de una aplicación web Angular. En este tutorial, verás cómo comenzar con la creación de una aplicación web usando Angular, y también conocerás componentes.
Comenzando
Comienza instalando Angular CLI usando el administrador de paquetes node (npm).
1 |
npm install -g @angular/cli |
Una vez que tienes el CLI Angular instalado, crea una nueva aplicación Angular usando CLI.
1 |
ng new angular-app |
Navega a la carpeta de aplicación e inicia el servidor.
1 |
cd angular-app
|
2 |
ng serve |
Apunta a tu navegador a http://localhost:4200/ y deberías tener la aplicación por defecto ejecutándose.
Estructura de Aplicación Angular
Navega a la carpeta de aplicación angular-app
y echa un vistazo a la estructura del proyecto. Aquí está cómo luce:



Toda aplicación de angular tiene un módulo raíz en donde defines el componente principal a cargar. En la aplicación Angular por defecto, el módulo raíz es definido dentro de app.module.ts
. Cuando carga el AppModule
, este revisa cuál componente está incluido y carga ese módulo. Como se vio en el app.module.ts
, el módulo que está incluido es AppComponent
. El componente AppComponent
es definido en el archivo app.component.ts
.
Un componente es definido usando el decorador @Component
. Dentro del decorador @Component
, puedes definir el componente selector
, el componente template
, y el style
relacionado.
¿Qué Es un Componente Angular?
Los componentes son como el bloque básico de construcción en una aplicación Angular. Los componentes son definidos usando el decorador @component
. Un componente tiene un selector
, template
, style
y otras propiedades, usando el que especifican los metadatos requeridos para procesar el componente.
Desde la documentación oficial:
Los componentes son el bloque de construcción más básico de un UI en una aplicación Angular. Una aplicación Angular es un árbol de componentes Angular. Los componentes Angular son un sub-conjunto de directivas. A diferencia de las directivas, los componentes siempre tienen una plantilla y solo un componente puede ser instanciado por un elemento en una plantilla.
La mejor manera de entender alfo relacionado a programar es hacerlo de verdad. Así que comencemos a crear un componente Angular para sumar dos números. Llamémoslo CalculatorComponent
.
Creando el Componente Calculator
Comencemos creando un componente para nuestra calculadora. Dentro de la carpeta src/app
, crea una carpeta llamada calc
. Aquí es donde nuestro componente calc
residirá. Dentro de la carpeta calc
, crea un archivo llamado calc.component.html
. Esta será la plantilla para nuestro componente de calculadora. Aquí está cómo luce:
1 |
<h1>
|
2 |
Calculator component |
3 |
</h1>
|
Crea un archivo llamado calc.component.ts
. Aquí es donde definirás el componente calc
y especificarás los metadatos relacionados. Estarás definiendo el componente usando el decorador @component
. Para definir el componente, necesitas importar el módulo component
desde el núcleo de angular.
1 |
import { Component } from '@angular/core'; |
Define el componente especificando el template
, style
, y selector
. También definirás una class
para administrar la plantilla especificada por el decorador @component
. Aquí está cómo luce:
1 |
import { Component } from '@angular/core'; |
2 |
|
3 |
@Component({ |
4 |
selector: 'calc', |
5 |
templateUrl: 'calc.component.html', |
6 |
styleUrls: ['calc.component.css'] |
7 |
})
|
8 |
export class CalcComponent { |
9 |
|
10 |
}
|
Todos los estilos relacionados al componente de la plantilla debería ser definido dentro del archivo especificado en el decorador de componente. Así que crea un archivo llamado calc.component.css
dentro de la carpeta calc
. Pondrás el sistema para el componente de la calculadora dentro de este archivo.
Ahora que tienes tu componente listo, definamos el componente dentro del módulo raíz app.module.ts
.
Primero importa el componente dentro de app.module.ts file
y después incluyelo en la sección declarations
. Aquí está cómo luce después de agregar el CalcComponent
:
1 |
import { BrowserModule } from '@angular/platform-browser'; |
2 |
import { NgModule } from '@angular/core'; |
3 |
|
4 |
import { AppComponent } from './app.component'; |
5 |
import { CalcComponent } from './calc/calc.component' |
6 |
|
7 |
@NgModule({ |
8 |
declarations: [ |
9 |
AppComponent, |
10 |
CalcComponent
|
11 |
],
|
12 |
imports: [ |
13 |
BrowserModule
|
14 |
],
|
15 |
providers: [], |
16 |
bootstrap: [AppComponent] |
17 |
})
|
18 |
export class AppModule { } |
Como puedes ver en el módulo root app.module.ts
, el AppComponent
es el módulo incluido y por lo tanto de generará por defecto. Así qué, para ver nuestro componente calculadora, definelo dentro de app.component.html
. Aquí está cómo luce el archivo app.component.html
.
1 |
<div style="text-align:center"> |
2 |
<calc></calc>
|
3 |
</div>
|
4 |
Guarda los cambios de arriba y comienza el servidor. Deberías poder ver el contenido HTML del componente calculadora mostrado.
Agregando la Funcionalidad Calculadora
Comencemos agregando una plantilla para nuestra calculadora Angular. Agrega el siguiente código al archivo calc.component.html
:
1 |
<div class="container"> |
2 |
<div class="header"> |
3 |
<h2>
|
4 |
Calculator component |
5 |
</h2>
|
6 |
</div>
|
7 |
|
8 |
<div class="grid"> |
9 |
<div class="row"> |
10 |
<div class="col-6"> |
11 |
<div class="operation"> |
12 |
<div class="row"> |
13 |
<div class="col-12"> |
14 |
<input type="number" name="" placeholder="number"> |
15 |
</div>
|
16 |
</div>
|
17 |
<div class="row"> |
18 |
<div class="col-12"> |
19 |
<input type="number" name="" placeholder="number"> |
20 |
</div>
|
21 |
</div>
|
22 |
<div>
|
23 |
<div class="col-12"> |
24 |
<button class="button"> |
25 |
Add |
26 |
</button>
|
27 |
</div>
|
28 |
</div>
|
29 |
</div>
|
30 |
</div>
|
31 |
<div class="col-6"> |
32 |
<div class="result"> |
33 |
<span>
|
34 |
Result |
35 |
</span>
|
36 |
</div>
|
37 |
</div>
|
38 |
</div>
|
39 |
</div>
|
40 |
</div>
|
Agrega el siguiente estilo al archivo calc.component.css
.
1 |
.grid{ |
2 |
width: 100% |
3 |
}
|
4 |
|
5 |
.row{ |
6 |
width: 100%; |
7 |
display: flex; |
8 |
}
|
9 |
|
10 |
|
11 |
.col-1 { |
12 |
width: 8.33%; |
13 |
}
|
14 |
|
15 |
.col-2 { |
16 |
width: 16.66%; |
17 |
}
|
18 |
|
19 |
.col-3 { |
20 |
width: 25%; |
21 |
}
|
22 |
|
23 |
.col-4 { |
24 |
width: 33.33%; |
25 |
}
|
26 |
|
27 |
.col-5 { |
28 |
width: 41.66%; |
29 |
}
|
30 |
|
31 |
.col-6 { |
32 |
width: 50%; |
33 |
}
|
34 |
|
35 |
.col-7 { |
36 |
width: 58.33%; |
37 |
}
|
38 |
|
39 |
.col-8 { |
40 |
width: 66.66%; |
41 |
}
|
42 |
|
43 |
.col-9 { |
44 |
width: 75%; |
45 |
}
|
46 |
|
47 |
.col-10 { |
48 |
width: 83.33%; |
49 |
}
|
50 |
|
51 |
.col-11 { |
52 |
width: 91.66%; |
53 |
}
|
54 |
|
55 |
.col-12 { |
56 |
width: 100%; |
57 |
}
|
58 |
|
59 |
.header{ |
60 |
width: 100%; |
61 |
background-color: #003A60; |
62 |
height: 100px; |
63 |
}
|
64 |
|
65 |
.header h2{ |
66 |
line-height: 100px; |
67 |
color: #fff; |
68 |
}
|
69 |
|
70 |
.button { |
71 |
background-color: #4CAF50; /* Green */ |
72 |
border: none; |
73 |
color: white; |
74 |
padding: 15px 32px; |
75 |
text-align: center; |
76 |
text-decoration: none; |
77 |
display: inline-block; |
78 |
font-size: 16px; |
79 |
margin: 4px 2px; |
80 |
cursor: pointer; |
81 |
}
|
82 |
|
83 |
input{ |
84 |
border: none; |
85 |
border-bottom: 1px solid grey; |
86 |
width: 80%; |
87 |
margin: 0% 10%; |
88 |
padding: 5%; |
89 |
}
|
90 |
|
91 |
.result{ |
92 |
background-color: #ddffff; |
93 |
width: 80%; |
94 |
margin: 20px 10px 10px 10px; |
95 |
height: 100px; |
96 |
border-left: 3px solid #2196F3; |
97 |
}
|
98 |
|
99 |
.result span{ |
100 |
line-height: 100px; |
101 |
}
|
Guarda los cambios de arriba y deberías poder visualizar la siguiente interfaz de usuario.



Agreguemos la directiva ngModel
a las cajas de texto de entrada mostradas arriba. Modifica el código de calc.component.html
como se muestra abajo:
1 |
<div class="row"> |
2 |
<div class="col-12"> |
3 |
<input [(ngModel)]="number1" type="number" name="" placeholder="number"> |
4 |
</div>
|
5 |
</div>
|
6 |
<div class="row"> |
7 |
<div class="col-12"> |
8 |
<input [(ngModel)]="number2" type="number" name="" placeholder="number"> |
9 |
</div>
|
10 |
</div>
|
Como se vio arriba, has establecido el ngModel
para las cajas de entrada de texto a las variables number1
y number2
.
Definamos las variables dentro del CalcComponent
en el archivo calc.component.ts
.
1 |
export class CalcComponent { |
2 |
public number1 : number; |
3 |
public number2 : number; |
4 |
}
|
Ahora, cuando el usuario teclea en las cajas de texto, la variable ngModel
correspondiente se actualiza. Puedes revisar mostrando la variable en el archivo de plantilla del componente.
1 |
<div class="result"> |
2 |
<span>
|
3 |
Number 1 : {{number1}} |
4 |
Number 2 : {{number2}} |
5 |
</span>
|
6 |
</div>
|
Guarda los cambios e ingresa valores dentro de las cajas de texto, y deberías tener los datos actualizados dentro del span.



Agreguemos un clic de botón al botón Add
el cuál calculará la suma del number1
y number2
cuando se da clic en el botón.
Modifica el código HTML como se muestra para incluir la directiva clic.
1 |
<button (click)="add()" class="button"> |
2 |
Add |
3 |
</button>
|
Define la función add
dentro del CalcComponent
como se muestra:
1 |
import { Component } from '@angular/core'; |
2 |
|
3 |
@Component({ |
4 |
selector: 'calc', |
5 |
templateUrl: 'calc.component.html', |
6 |
styleUrls: ['calc.component.css'] |
7 |
})
|
8 |
export class CalcComponent { |
9 |
public number1 : number; |
10 |
public number2 : number; |
11 |
public result : number; |
12 |
|
13 |
public add(){ |
14 |
this.result = this.number1 + this.number2 |
15 |
}
|
16 |
}
|
Como se vio en el código de arriba, el resultado de la suma está siendo colocado en una variable llamada result
.
Modifiquemos la plantilla HTML para mostrar el resultado una vez que la variable es establecida.
1 |
<div class="result"> |
2 |
<span>
|
3 |
Result : {{result}} |
4 |
</span>
|
5 |
</div>
|
Guarda los cambios de arriba e intenta sumar dos números dando clic sobre el botón Add. El resultado se mostrará en la interfaz de usuario.



Terminando
En este tutorial, viste cómo comenzar con crear una aplicación web usando Angular 4. Aprendiste sobre componentes Angular y cómo crear uno. Creaste un simple componente Angular simple para sumar dos números.
El código fuente de este tutorial está disponible en GitHub. Si estás buscando recursos adicionales para estudiar o usar en tu trabajo, revisa lo que tenemos disponible en Envato Market.
Déjanos saber tus ideas, sugerencias o cualquier otra corrección en los comentarios de abajo.