conceptosangular - keblato/TutorialesTalleres-Angular GitHub Wiki
Conceptos Básicos de la Arquitectura de una aplicación Angular
Módulos y Componentes
Angular es una plataforma para desarrollar (single-page) aplicaciones web con HTML 5 y Typescript. Angular está escrito en Typescript.
Una aplicación Angular se organiza en un conjunto de módulos (NgModules
), siempre habrá un módulo principal raíz y módulos que agrupan de manera lógica las funcionalidades de la aplicación.
Cuántos módulos, cuál responsabilidad tiene cada uno, cómo se relacionan los otros módulos entre sí, serán decisiones del diseñador de la aplicación.
Un módulo define (declara) uno o más componentes. Los componentes son los elementos básicos que definen una funcionalidad de la aplicación y con la que el usuario podrá interactuar. Un componente tiene una vista (Htlm) y una lógica que permitirá ver, elegir y modificar información de la aplicación.
Los componentes utilizan servicios que proporcionan una funcionalidad específica que no está directamente relacionada con las vistas. Los servicios pueden inyectarse en los componentes como dependencias, haciendo el código más modular, reutilizable y eficiente.
Relaciones entre los Módulos |
---|
Un módulo Angular declara componentes, exporta componentes y provee servicios. También puede importar otros módulos que contienen componentes y/o servicios que se necesitan para su funcionalidad. |
Volver a Inicio |
---|
Librerías de Angular
Cuando construimos una aplicación web utilizando en framework Angular, debemos importar una serie de librerías predefinidas. Estas librerías comienzan por @angular
y las básicas son: '@angular/core', '@angular/platform-browser', '@angular/forms', '@angular/common/http'
.
Estructura de archivos de una aplicación Angular
En una aplicación Angular podemos encontrar archivo de Typescript .ts
, archivos Htlm .html
, archivos de estilos .css
y archivos de configuración para distintos propósitos que típicamente son .json
.
Cuando se crea una aplicación Angular, en la carpeta src
algunos de los archivos que tenemos allí son:
- src
+ app // aquí van los módulos, componentes, servicios, pruebas
index.html // página principal
main.ts // declaración del módulo principal
style.css // estilos
En la carpeta app
tenemos los módulos. El principal y su componente van en la raíz y la recomendación es tener una carpeta aparte por cada módulo adicional y dentro de esta una carpeta por cada componente:
- src
- app
+ moduloA
+ moduloB
+ ...
app.module.ts // módulo principal
app.componente.ts // componente principal del módulo principal
app.component.spec.ts // pruebas para el componente principal
app.component.html // template del componente principal
app.components.css // estilos del móduloprincipal
Volver a Inicio |
---|
Clases y Decoradores (Anotaciones)
Cada módulo y cada componente es una clase Typescript
anotada o decorada con decoradores de Angular. Un decorador tiene un nombre y un conjunto de propiedades.
Decorador de un Módulo
El decorador de un módulo es @NgModule
y, en el siguiente ejemplo decora la clase AppModule
. Por ejemplo, en el archivo app.module.ts
(el módulo principal) tenemos:
@NgModule({
imports: [ BrowserModule, FormsModule ],
declarations: [ AppComponent, ShoppingCartComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
La clase AppModule
está anotada con @NgModule
y tiene por propiedades:
imports: [ BrowserModule, FormsModule ], // Lista de módulos que importa. En este caso son módulos de framework Angular.
declarations: [ AppComponent, ShoppingCartComponent ], // Lista de los componentes que define. En este ejemplo, el componente principal y otro llamado ShoppingCartComponent
`bootstrap: [ AppComponent ] // El componente principal.
Todos los nombres de módulos y componentes anteriores son nombres lógicos. La asociación con los archivos físicos donde se encuentran se hace al comienzo del archivo:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import { ShoppingCartComponent } from './shopping-cart/shopping-cart.component';
Decorador de un Componente
El decorador o anotación de un componente es @Component
y en el siguiente ejemplo decora la clase AppComponent
; tiene por propiedades:
@Component({
selector: 'my-app', // define la marca o tag que podrá utilizarse en una página para incrustar el componente
templateUrl: './app.component.html' // define el nombre del archivo donde está el template o html del componente
})
export class AppComponent { }
Más sobre Componentes
Un componente controla una zona de la pantalla llamada vista (view
). Junto con el componente se define un template (un archivo Html extendido con el marcado Angular) que será desplegado por Angular en la vista. Un componente puede tener una vista o una colección de vistas organizadas de manera jerárquica. Veamos un ejemplo.
Ir a Ejemplo:Shopping cart |
---|
Volver a Inicio |
---|