Angular Typescript PDF
Angular Typescript PDF
+
TypeScript
Temario
Introducción a Angular
Entorno de desarrollo
Javascript moderno
Introducción a TypeScript
Primeros pasos en Angular
Modelos, componentes y vistas
Servicios
Formularios
Acceso al servidor
Enrutamiento y navegación
Despliegue a producción
Introducción a
Angular
¿Qué es Angular?
¿Qué es Angular?
Framework JS
¿Qué es Angular?
Framework JS
SPA: Single Page Applications
¿Qué es Angular?
Framework JS
SPA: Single Page Applications
TypeScript
¿Qué es Angular?
Framework JS
SPA: Single Page Applications
TypeScript
Código fuente y código compilado
¿Qué es Angular?
Framework JS
SPA: Single Page Applications
TypeScript
Código fuente y código compilado
¿Angular 2? ¿6? ¿AngularJS?
Entorno de
desarrollo
Entorno de desarrollo
Entorno de desarrollo
Clonar un repositorio:
Clonar un repositorio:
})
})(jQuery);
Organización del código JavaScript
Organización del código JavaScript
<head>
<meta charset="UTF-8">
<title>Mi web</title>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="js/ui.js"></script>
</head>
Organización del código JavaScript
(function($) {
<head>
<meta charset="UTF-8">
<title>Mi
$(document).ready(function()
web</title> {
<script src="vendor/jquery/jquery.min.js"></script> 75 líneas
$(document).on('click', '.tab_new', offerGroupSwitchTabs);
<script src="js/ui.js"></script>
$(document).on('click', '.navigationServices-li', jumpTo);
</head> $('.load-more_new').on('click', loadMore).each(function() {
$(this).data('main', $(this).text());
});
})
boids.push({
x: Math.random() * width,
y: Math.random() * height,
v: {
Organización del código JavaScript
boids.push({
x: Math.random() * width,
y: Math.random() * height,
v: {
Organización del código JavaScript
Organización del código JavaScript
Ventajas Inconvenientes
Organización del código JavaScript
Ventajas Inconvenientes
Difícil de leer/entender
Organización del código JavaScript
Ventajas Inconvenientes
Difícil de leer/entender
Difícil de mantener
Organización del código JavaScript
Ventajas Inconvenientes
Difícil de leer/entender
Difícil de mantener
Poca reusabilidad
Organización del código JavaScript
Ventajas Inconvenientes
Difícil de leer/entender
Difícil de mantener
Poca reusabilidad
Difícil encontrar código no
usado
Organización del código JavaScript
Ventajas Inconvenientes
Difícil de leer/entender
Difícil de mantener
Poca reusabilidad
Difícil encontrar código no
usado
Colisiones de nombres
Organización del código JavaScript
Ventajas Inconvenientes
Una sola petición Difícil de leer/entender
HTTP Difícil de mantener
Poca reusabilidad
Difícil encontrar código no
usado
Colisiones de nombres
Organización del código JavaScript
Organización del código JavaScript
Ventajas Inconvenientes
<head>
Ventajas Inconvenientes
Ventajas Inconvenientes
Ventajas Inconvenientes
Ventajas Inconvenientes
Ventajas Inconvenientes
Ventajas Inconvenientes
Ventajas Inconvenientes
Ventajas Inconvenientes
Ventajas Inconvenientes
Organización del código JavaScript: módulos
Module loaders: ellos gestionan las dependencias y
cargan los módulos (RequireJS, SystemJS)
Ventajas Inconvenientes
Ventajas Inconvenientes
Ventajas Inconvenientes
Ventajas Inconvenientes
Legible e inteligible
Fácil de mantener
Reutilizable
Cargamos sólo lo que
necesitamos
Gestión automática de
dependencias
Encapsulación
Organización del código JavaScript: módulos
Module bundlers: además de lo anterior, generan un
solo código encadenado y minificado (browserify,
webpack)
Ventajas
return {
hello: function() {
console.log('hello');
},
goodbye: function() {
console.log('goodbye');
}
};
});
Organización del código JavaScript: módulos
function myModuleB() {
this.hello = function() {
return 'hello!';
}
this.goodbye = function() {
return 'goodbye!';
}
}
module.exports = myModuleB;
Organización del código JavaScript: módulos
method1("hello");
Métodos:
Programación funcional con arrays
Métodos:
map
Programación funcional con arrays
Métodos:
map
filter
Programación funcional con arrays
Métodos:
map
filter
reduce
Programación funcional con arrays
Métodos:
map
filter
reduce
find
Programación funcional con arrays
Métodos:
map
filter
reduce
find
Encadenamiento
TypeScript
TypeScript
TypeScript
Superconjunto de JavaScript
TypeScript
Superconjunto de JavaScript
Transpila a ES5
TypeScript
Superconjunto de JavaScript
Transpila a ES5
Tipado
TypeScript
Superconjunto de JavaScript
Transpila a ES5
Tipado
Errores en tiempo de compilación
TypeScript
Superconjunto de JavaScript
Transpila a ES5
Tipado
Errores en tiempo de compilación
tsc
TypeScript
Superconjunto de JavaScript
Transpila a ES5
Tipado
Errores en tiempo de compilación
tsc
tsconfig.json
TypeScript
TypeScript
Tipos básicos:
TypeScript
Tipos básicos:
number
TypeScript
Tipos básicos:
number
string
TypeScript
Tipos básicos:
number
string
boolean
TypeScript
Tipos básicos:
number
string
boolean
Array
TypeScript
Tipos básicos:
number
string
boolean
Array
any
TypeScript
Tipos básicos:
number
string
boolean
Array
any
void
TypeScript
Tipos básicos:
number
string
boolean
Array
any
void
Enum
TypeScript
Tipos básicos:
number
string
boolean
Array
any
void
Enum
Union types
Genéricos
TypeScript
TypeScript
Funciones
TypeScript
Funciones
Sin flexibilidad en el número de parámetros
TypeScript
Funciones
Sin flexibilidad en el número de parámetros
Parámetros opcionales
TypeScript
Funciones
Sin flexibilidad en el número de parámetros
Parámetros opcionales
Clases
TypeScript
Funciones
Sin flexibilidad en el número de parámetros
Parámetros opcionales
Clases
Propiedades fuera del constructor
TypeScript
Funciones
Sin flexibilidad en el número de parámetros
Parámetros opcionales
Clases
Propiedades fuera del constructor
Visibilidad de los miembros
TypeScript
Funciones
Sin flexibilidad en el número de parámetros
Parámetros opcionales
Clases
Propiedades fuera del constructor
Visibilidad de los miembros
Modificador readonly
TypeScript
Funciones
Sin flexibilidad en el número de parámetros
Parámetros opcionales
Clases
Propiedades fuera del constructor
Visibilidad de los miembros
Modificador readonly
Propiedades estáticas
TypeScript
Funciones
Sin flexibilidad en el número de parámetros
Parámetros opcionales
Clases
Propiedades fuera del constructor
Visibilidad de los miembros
Modificador readonly
Propiedades estáticas
Interfaces
Métodos abstractos
TypeScript
TypeScript
Decoradores (@)
Angular
Primeros pasos
Primeros pasos
clase =>
Esqueleto de una pieza en Angular
clase =>
=> clase exportada =>
Esqueleto de una pieza en Angular
clase =>
=> clase exportada =>
=> clase exportada y decorada =>
Esqueleto de una pieza en Angular
clase =>
=> clase exportada =>
=> clase exportada y decorada =>
=> dependencias
Examinando un componente
Examinando un componente
Metadata
Examinando un componente
Metadata
selector
Examinando un componente
Metadata
selector
template / templateUrl
Examinando un componente
Metadata
selector
template / templateUrl
styles / styleUrls
Examinando un template
Examinando un template
Custom elements
Examinando un template
Custom elements
Data binding
Examinando un template
Custom elements
Data binding
Interpolation
Examinando un template
Custom elements
Data binding
Interpolation
Property binding
Examinando un template
Custom elements
Data binding
Interpolation
Property binding
Class & style binding
Examinando un template
Custom elements
Data binding
Interpolation
Property binding
Class & style binding
Event binding
Examinando un template
Custom elements
Data binding
Interpolation
Property binding
Class & style binding
Event binding
Two-way binding
Examinando un template
Examinando un template
Directivas de atributo
Examinando un template
Directivas de atributo
ngClass
Examinando un template
Directivas de atributo
ngClass
ngStyle
Examinando un template
Directivas de atributo
ngClass
ngStyle
Directivas estructurales
Examinando un template
Directivas de atributo
ngClass
ngStyle
Directivas estructurales
ngIf
Examinando un template
Directivas de atributo
ngClass
ngStyle
Directivas estructurales
ngIf
ngFor
Examinando un template
Directivas de atributo
ngClass
ngStyle
Directivas estructurales
ngIf
ngFor
ngSwitch
Examinando un template
Directivas de atributo
ngClass
ngStyle
Directivas estructurales
ngIf
ngFor
ngSwitch
Pipes
Examinando un template
Directivas de atributo
ngClass
ngStyle
Directivas estructurales
ngIf
ngFor
ngSwitch
Pipes
@Pipe, PipeTransform
Servicios
Servicios
Dependency Injection
Servicios
Dependency Injection
Injectable()
Servicios
Dependency Injection
Injectable()
Proveedores
Servicios
Dependency Injection
Injectable()
Proveedores
Singleton
Formularios
Formularios
Asincronía
Conexiones con el servidor
Asincronía
Observables
Conexiones con el servidor
Asincronía
Observables
Suscripciones
Conexiones con el servidor
Asincronía
Observables
Suscripciones
API REST
Conexiones con el servidor
Asincronía
Observables
Suscripciones
API REST
El módulo HttpClientModule
Conexiones con el servidor
Asincronía
Observables
Suscripciones
API REST
El módulo HttpClientModule
Módulo HttpClientModule y servicio HttpClient
Conexiones con el servidor
Asincronía
Observables
Suscripciones
API REST
El módulo HttpClientModule
Módulo HttpClientModule y servicio HttpClient
Métodos del servicio HttpClient:
get(), post(), put(), patch(), delete()
Navegación por la app
Navegación por la app
El router
Navegación por la app
El router
Las rutas
Navegación por la app
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Navegación por la app
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
Navegación por la app
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
404
Navegación por la app
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
404
Guards
Navegación por la app
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
404
Guards
El RouterOutlet
Navegación por la app
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
404
Guards
El RouterOutlet
Links de navegación: routerLink y routerLinkActive
Navegación por la app
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
404
Guards
El RouterOutlet
Links de navegación: routerLink y routerLinkActive
router.navigate()
Navegación por la app
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
404
Guards
El RouterOutlet
Links de navegación: routerLink y routerLinkActive
router.navigate()
History API
Navegación por la app
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
404
Guards
El RouterOutlet
Links de navegación: routerLink y routerLinkActive
router.navigate()
History API
El servicio Title
Despliegue a producción
Despliegue a producción