Temario
Temario
Introducción a Angular
Entornode 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
npm
Instalar última versióndespués de instalar Node.js
(configurar proxy si es necesario)
Repositorio de módulos distribuibles
24.
npm
Instalar última versióndespués de instalar Node.js
(configurar proxy si es necesario)
Repositorio de módulos distribuibles
Módulos globales y módulos locales
25.
npm
Instalar última versióndespués de instalar Node.js
(configurar proxy si es necesario)
Repositorio de módulos distribuibles
Módulos globales y módulos locales
La carpeta node_modules
26.
npm
Instalar última versióndespués de instalar Node.js
(configurar proxy si es necesario)
Repositorio de módulos distribuibles
Módulos globales y módulos locales
La carpeta node_modules
El archivo package.json:
27.
npm
Instalar última versióndespués de instalar Node.js
(configurar proxy si es necesario)
Repositorio de módulos distribuibles
Módulos globales y módulos locales
La carpeta node_modules
El archivo package.json:
Registro de dependencias
28.
npm
Instalar última versióndespués de instalar Node.js
(configurar proxy si es necesario)
Repositorio de módulos distribuibles
Módulos globales y módulos locales
La carpeta node_modules
El archivo package.json:
Registro de dependencias
Dependencias de desarrollo y de producción
29.
npm
Instalar última versióndespués de instalar Node.js
(configurar proxy si es necesario)
Repositorio de módulos distribuibles
Módulos globales y módulos locales
La carpeta node_modules
El archivo package.json:
Registro de dependencias
Dependencias de desarrollo y de producción
Versiones (SEMVER)
Comandos npm
Instalar unpaquete globalmente:
npm install -g paquete
Instalar un paquete de producción:
npm install paquete
33.
Comandos npm
Instalar unpaquete globalmente:
npm install -g paquete
Instalar un paquete de producción:
npm install paquete
Instalar un paquete de desarrollo:
npm install paquete --save-dev
34.
Comandos npm
Instalar unpaquete globalmente:
npm install -g paquete
Instalar un paquete de producción:
npm install paquete
Instalar un paquete de desarrollo:
npm install paquete --save-dev
Instalar todas las dependencias:
npm install
35.
Comandos npm
Instalar unpaquete globalmente:
npm install -g paquete
Instalar un paquete de producción:
npm install paquete
Instalar un paquete de desarrollo:
npm install paquete --save-dev
Instalar todas las dependencias:
npm install
Instalar las dependencias de producción:
npm install --production
36.
Comandos npm
Instalar unpaquete globalmente:
npm install -g paquete
Instalar un paquete de producción:
npm install paquete
Instalar un paquete de desarrollo:
npm install paquete --save-dev
Instalar todas las dependencias:
npm install
Instalar las dependencias de producción:
npm install --production
Listar paquetes instalados:
npm list --depth=0 (locales)
npm list -g --depth=0 (globales)
JavaScript
Interpretado, compilado yejecutado en el navegador
Cada navegador programa su propio motor de JS
Estandarización: ECMAScript
La versión ES6 o ES2015
44.
JavaScript
Interpretado, compilado yejecutado en el navegador
Cada navegador programa su propio motor de JS
Estandarización: ECMAScript
La versión ES6 o ES2015
Transpiladores: Babel, TypeScript
45.
JavaScript
Interpretado, compilado yejecutado en el navegador
Cada navegador programa su propio motor de JS
Estandarización: ECMAScript
La versión ES6 o ES2015
Transpiladores: Babel, TypeScript
Organización del códigoJavaScript
Ejemplo de uso clásico de JS: utilizar un plugin de
jQuery en nuestra web, o implementar alguna
interacción con el usuario
48.
Organización del códigoJavaScript
Ejemplo de uso clásico de JS: utilizar un plugin de
jQuery en nuestra web, o implementar alguna
interacción con el usuario
Pocas líneas de código, todas en un mismo archivo
<head>
<meta charset="UTF-8">
<title>Mi web</title>
<scriptsrc="vendor/jquery/jquery.min.js"></script>
<script src="js/tabs.js"></script>
</head>
(function($) {
$(document).ready(function() {
// Al hacer clic en una pestaña
$(".tab a").on("click", function(e) {
// Anulamos el link
e.preventDefault();
// Ocultamos todos los bloques de contenido
// y mostramos sólo el que se ha elegido
var content_id = $(this).attr("href");
$(".tab-content").hide();
$(content_id).show();
// Desmarcamos la pestaña que estuviera activa
// y marcamos la clicada como activa
$(".tab.active").removeClass("active");
$(this).closest(".tab").addClass("active");
})
})
})(jQuery);
Organización del código JavaScript
24 líneas
Organización del códigoJavaScript
Programar toda la UI de una página
(function() {
var width = window.innerWidth;
var height = window.innerHeight;
var timerID = 0;
var c = document.getElementById('canvas')
var ctx = c.getContext('2d');
c.width = width;
c.height = height;
var speed = 10;
var size = 8;
var boids = [];
var totalBoids = 150;
var init = function(){
for (var i = 0; i < totalBoids; i++) {
boids.push({
x: Math.random() * width,
y: Math.random() * height,
v: {
58.
Organización del códigoJavaScript
Programar toda la UI de una página
(function() {
var width = window.innerWidth;
var height = window.innerHeight;
var timerID = 0;
var c = document.getElementById('canvas')
var ctx = c.getContext('2d');
c.width = width;
c.height = height;
var speed = 10;
var size = 8;
var boids = [];
var totalBoids = 150;
var init = function(){
for (var i = 0; i < totalBoids; i++) {
boids.push({
x: Math.random() * width,
y: Math.random() * height,
v: {
1711
líneas
Organización del códigoJavaScript
¿2000 líneas en un solo archivo?
Ventajas Inconvenientes
Difícil de leer/entender
63.
Organización del códigoJavaScript
¿2000 líneas en un solo archivo?
Ventajas Inconvenientes
Difícil de leer/entender
Difícil de mantener
64.
Organización del códigoJavaScript
¿2000 líneas en un solo archivo?
Ventajas Inconvenientes
Difícil de leer/entender
Difícil de mantener
Poca reusabilidad
65.
Organización del códigoJavaScript
¿2000 líneas en un solo archivo?
Ventajas Inconvenientes
Difícil de leer/entender
Difícil de mantener
Poca reusabilidad
Difícil encontrar código no
usado
66.
Organización del códigoJavaScript
¿2000 líneas en un solo archivo?
Ventajas Inconvenientes
Difícil de leer/entender
Difícil de mantener
Poca reusabilidad
Difícil encontrar código no
usado
Colisiones de nombres
67.
Organización del códigoJavaScript
¿2000 líneas en un solo archivo?
Ventajas Inconvenientes
Difícil de leer/entender
Difícil de mantener
Poca reusabilidad
Difícil encontrar código no
usado
Colisiones de nombres
Una sola petición
HTTP
Organización del códigoJavaScript
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
<head>
<meta charset="UTF-8">
<title>Mi web</title>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="js/modules/tabs.js"></script>
<script src="js/modules/banners.js"></script>
<script src="js/modules/lightbox.js"></script>
<script src="js/modules/scroll.js"></script>
<script src="js/modules/carousel.js"></script>
<script src="js/modules/slideshow.js"></script>
<script src="js/modules/gallery.js"></script>
<script src="js/modules/navigation.js"></script>
</head>
75.
Organización del códigoJavaScript
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
Colisiones de nombres
<head>
<meta charset="UTF-8">
<title>Mi web</title>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="js/modules/tabs.js"></script>
<script src="js/modules/banners.js"></script>
<script src="js/modules/lightbox.js"></script>
<script src="js/modules/scroll.js"></script>
<script src="js/modules/carousel.js"></script>
<script src="js/modules/slideshow.js"></script>
<script src="js/modules/gallery.js"></script>
<script src="js/modules/navigation.js"></script>
</head>
76.
Organización del códigoJavaScript
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
Colisiones de nombres
Muchas peticiones HTTP
<head>
<meta charset="UTF-8">
<title>Mi web</title>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="js/modules/tabs.js"></script>
<script src="js/modules/banners.js"></script>
<script src="js/modules/lightbox.js"></script>
<script src="js/modules/scroll.js"></script>
<script src="js/modules/carousel.js"></script>
<script src="js/modules/slideshow.js"></script>
<script src="js/modules/gallery.js"></script>
<script src="js/modules/navigation.js"></script>
</head>
77.
Organización del códigoJavaScript
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
Colisiones de nombres
Muchas peticiones HTTP
El orden importa:
dependencias
<head>
<meta charset="UTF-8">
<title>Mi web</title>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="js/modules/tabs.js"></script>
<script src="js/modules/banners.js"></script>
<script src="js/modules/lightbox.js"></script>
<script src="js/modules/scroll.js"></script>
<script src="js/modules/carousel.js"></script>
<script src="js/modules/slideshow.js"></script>
<script src="js/modules/gallery.js"></script>
<script src="js/modules/navigation.js"></script>
</head>
78.
Organización del códigoJavaScript
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
Colisiones de nombres
Muchas peticiones HTTP
El orden importa:
dependencias
Legible e inteligible
<head>
<meta charset="UTF-8">
<title>Mi web</title>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="js/modules/tabs.js"></script>
<script src="js/modules/banners.js"></script>
<script src="js/modules/lightbox.js"></script>
<script src="js/modules/scroll.js"></script>
<script src="js/modules/carousel.js"></script>
<script src="js/modules/slideshow.js"></script>
<script src="js/modules/gallery.js"></script>
<script src="js/modules/navigation.js"></script>
</head>
79.
Organización del códigoJavaScript
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
Colisiones de nombres
Muchas peticiones HTTP
El orden importa:
dependencias
Legible e inteligible
Fácil de mantener
<head>
<meta charset="UTF-8">
<title>Mi web</title>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="js/modules/tabs.js"></script>
<script src="js/modules/banners.js"></script>
<script src="js/modules/lightbox.js"></script>
<script src="js/modules/scroll.js"></script>
<script src="js/modules/carousel.js"></script>
<script src="js/modules/slideshow.js"></script>
<script src="js/modules/gallery.js"></script>
<script src="js/modules/navigation.js"></script>
</head>
80.
Organización del códigoJavaScript
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
Colisiones de nombres
Muchas peticiones HTTP
El orden importa:
dependencias
Legible e inteligible
Fácil de mantener
Reutilizable
<head>
<meta charset="UTF-8">
<title>Mi web</title>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="js/modules/tabs.js"></script>
<script src="js/modules/banners.js"></script>
<script src="js/modules/lightbox.js"></script>
<script src="js/modules/scroll.js"></script>
<script src="js/modules/carousel.js"></script>
<script src="js/modules/slideshow.js"></script>
<script src="js/modules/gallery.js"></script>
<script src="js/modules/navigation.js"></script>
</head>
81.
Organización del códigoJavaScript
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
Colisiones de nombres
Muchas peticiones HTTP
El orden importa:
dependencias
Legible e inteligible
Fácil de mantener
Reutilizable
Cargamos sólo lo que
necesitamos
<head>
<meta charset="UTF-8">
<title>Mi web</title>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="js/modules/tabs.js"></script>
<script src="js/modules/banners.js"></script>
<script src="js/modules/lightbox.js"></script>
<script src="js/modules/scroll.js"></script>
<script src="js/modules/carousel.js"></script>
<script src="js/modules/slideshow.js"></script>
<script src="js/modules/gallery.js"></script>
<script src="js/modules/navigation.js"></script>
</head>
Dependencias: es difícilasegurar el orden, y no es
posible tener dependencias circulares
Organización del código JavaScript
84.
Dependencias: es difícilasegurar el orden, y no es
posible tener dependencias circulares
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/modules/tabs.js"></script>
<script src="js/modules/banners.js"></script>
<script src="js/modules/lightbox.js"></script>
<script src="js/modules/scroll.js"></script>
<script src="js/modules/carousel.js"></script>
<script src="js/modules/slideshow.js"></script>
<script src="js/modules/gallery.js"></script>
<script src="js/modules/navigation.js"></script>
</head>
85.
Dependencias: es difícilasegurar el orden, y no es
posible tener dependencias circulares
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/modules/tabs.js"></script>
<script src="js/modules/banners.js"></script>
<script src="js/modules/lightbox.js"></script>
<script src="js/modules/scroll.js"></script>
<script src="js/modules/carousel.js"></script>
<script src="js/modules/slideshow.js"></script>
<script src="js/modules/gallery.js"></script>
<script src="js/modules/navigation.js"></script>
</head>
Module loaders: ellosgestionan las dependencias y
cargan los módulos (RequireJS, SystemJS)
Organización del código JavaScript: módulos
88.
Module loaders: ellosgestionan las dependencias y
cargan los módulos (RequireJS, SystemJS)
Organización del código JavaScript: módulos
Ventajas Inconvenientes
89.
Module loaders: ellosgestionan las dependencias y
cargan los módulos (RequireJS, SystemJS)
Organización del código JavaScript: módulos
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
Muchas peticiones HTTP
90.
Module loaders: ellosgestionan las dependencias y
cargan los módulos (RequireJS, SystemJS)
Organización del código JavaScript: módulos
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
Muchas peticiones HTTP
Legible e inteligible
Fácil de mantener
Reutilizable
Cargamos sólo lo que
necesitamos
91.
Module loaders: ellosgestionan las dependencias y
cargan los módulos (RequireJS, SystemJS)
Organización del código JavaScript: módulos
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
Muchas peticiones HTTP
Legible e inteligible
Fácil de mantener
Reutilizable
Cargamos sólo lo que
necesitamos
Gestión automática de
dependencias
92.
Module loaders: ellosgestionan las dependencias y
cargan los módulos (RequireJS, SystemJS)
Organización del código JavaScript: módulos
Ventajas Inconvenientes
Difícil encontrar código no
usado (menos difícil que
antes)
Muchas peticiones HTTP
Legible e inteligible
Fácil de mantener
Reutilizable
Cargamos sólo lo que
necesitamos
Gestión automática de
dependencias
Encapsulación
Module bundlers: ademásde lo anterior, generan un
solo código encadenado y minificado (browserify,
webpack)
Organización del código JavaScript: módulos
95.
Module bundlers: ademásde lo anterior, generan un
solo código encadenado y minificado (browserify,
webpack)
Organización del código JavaScript: módulos
Ventajas
96.
Module bundlers: ademásde lo anterior, generan un
solo código encadenado y minificado (browserify,
webpack)
Organización del código JavaScript: módulos
Ventajas
Legible e inteligible
Fácil de mantener
Reutilizable
Cargamos sólo lo que
necesitamos
Gestión automática de
dependencias
Encapsulación
97.
Una o muypocas
conexiones HTTP
Module bundlers: además de lo anterior, generan un
solo código encadenado y minificado (browserify,
webpack)
Organización del código JavaScript: módulos
Ventajas
Legible e inteligible
Fácil de mantener
Reutilizable
Cargamos sólo lo que
necesitamos
Gestión automática de
dependencias
Encapsulación
98.
Una o muypocas
conexiones HTTP
Eliminación de código
no usado (tree shaking)
Module bundlers: además de lo anterior, generan un
solo código encadenado y minificado (browserify,
webpack)
Organización del código JavaScript: módulos
Ventajas
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ódigoJavaScript: módulos
¿Puedo escribir mis módulos como yo quiera? ¿hay un
estándar?
101.
Organización del códigoJavaScript: módulos
¿Puedo escribir mis módulos como yo quiera? ¿hay un
estándar?
AMD: Asynchronous Module Definition
102.
Organización del códigoJavaScript: módulos
¿Puedo escribir mis módulos como yo quiera? ¿hay un
estándar?
AMD: Asynchronous Module Definition
define(['myModule', 'myOtherModule'], function(myModule, myOtherModule) {
return {
hello: function() {
console.log('hello');
},
goodbye: function() {
console.log('goodbye');
}
};
});
103.
Organización del códigoJavaScript: módulos
¿Puedo escribir mis módulos como yo quiera? ¿hay un
estándar?
AMD: Asynchronous Module Definition
CommonJS
104.
Organización del códigoJavaScript: módulos
¿Puedo escribir mis módulos como yo quiera? ¿hay un
estándar?
AMD: Asynchronous Module Definition
CommonJS
var myModuleA = require('myModuleA');
function myModuleB() {
this.hello = function() {
return 'hello!';
}
this.goodbye = function() {
return 'goodbye!';
}
}
module.exports = myModuleB;
105.
Organización del códigoJavaScript: módulos
¿Puedo escribir mis módulos como yo quiera? ¿hay un
estándar?
AMD: Asynchronous Module Definition
CommonJS
UMD: Universal Module Definition
106.
Organización del códigoJavaScript: módulos
¿Puedo escribir mis módulos como yo quiera? ¿hay un
estándar?
AMD: Asynchronous Module Definition
CommonJS
UMD: Universal Module Definition
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD
define(['myModule', 'myOtherModule'], factory);
} else if (typeof exports === 'object') {
// CommonJS
module.exports = factory(require('myModule'), require('myOtherModule'));
} else {
// Browser globals (Note: root is window)
root.returnExports = factory(root.myModule, root.myOtherModule);
}
}(this, function (myModule, myOtherModule) {
// Methods
function notHelloOrGoodbye(){}; // A private method
107.
Organización del códigoJavaScript: módulos
¿Puedo escribir mis módulos como yo quiera? ¿hay un
estándar?
AMD: Asynchronous Module Definition
CommonJS
UMD: Universal Module Definition
ES6 Modules
108.
Organización del códigoJavaScript: módulos
¿Puedo escribir mis módulos como yo quiera? ¿hay un
estándar?
AMD: Asynchronous Module Definition
CommonJS
UMD: Universal Module Definition
ES6 Modules
import { method1 } from './moduleA.js';
method1("hello");
export let method2 = function() {
console.log("Method 2");
}
Organización del códigoJavaScript: módulos
¿AMD, CommonJS, UMD, ES6?
Compatibilidad de los módulos ES6 en navegadores
111.
Organización del códigoJavaScript: módulos
¿AMD, CommonJS, UMD, ES6?
Compatibilidad de los módulos ES6 en navegadores
¡Webpack!
112.
Organización del códigoJavaScript: módulos
¿AMD, CommonJS, UMD, ES6?
Compatibilidad de los módulos ES6 en navegadores
¡Webpack!
TypeScript usa la sintaxis ES6
113.
Organización del códigoJavaScript: módulos
¿AMD, CommonJS, UMD, ES6?
Compatibilidad de los módulos ES6 en navegadores
¡Webpack!
TypeScript usa la sintaxis ES6
TS -> ES5 -> webpack -> bundle -> browser =
114.
Organización del códigoJavaScript: módulos
¿AMD, CommonJS, UMD, ES6?
Compatibilidad de los módulos ES6 en navegadores
¡Webpack!
TypeScript usa la sintaxis ES6
TS -> ES5 -> webpack -> bundle -> browser = Angular CLI
ES6
Operador spread
Parámetros enfunciones
Enviar varios parámetros a partir de un array
push y unshift
Intercalar un array dentro de otro
Copiar un array en otro
Copiar un objeto en otro
ES6
Módulos
import
import { literal} from 'ruta_modulo';
import literal from 'ruta_modulo';
import * as literal from 'ruta_modulo';
import 'ruta_modulo';
export
export let a = 3;
export let class Clase {
...
}
export default {
key: value
}
TypeScript
Funciones
Sin flexibilidad enel número de parámetros
Parámetros opcionales
Clases
Propiedades fuera del constructor
Visibilidad de los miembros
Modificador readonly
162.
TypeScript
Funciones
Sin flexibilidad enel número de parámetros
Parámetros opcionales
Clases
Propiedades fuera del constructor
Visibilidad de los miembros
Modificador readonly
Propiedades estáticas
163.
TypeScript
Funciones
Sin flexibilidad enel 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
Primeros pasos
ng newpara generar la app
ng serve -o para ejecutarla y verla en el navegador
170.
Primeros pasos
ng newpara generar la app
ng serve -o para ejecutarla y verla en el navegador
Entornos dev y prod
171.
Primeros pasos
ng newpara generar la app
ng serve -o para ejecutarla y verla en el navegador
Entornos dev y prod
Módulos, componentes y vistas
172.
Primeros pasos
ng newpara generar la app
ng serve -o para ejecutarla y verla en el navegador
Entornos dev y prod
Módulos, componentes y vistas
Archivos de configuración
Conexiones con elservidor
Asincronía
Observables
Suscripciones
API REST
218.
Conexiones con elservidor
Asincronía
Observables
Suscripciones
API REST
El módulo HttpClientModule
219.
Conexiones con elservidor
Asincronía
Observables
Suscripciones
API REST
El módulo HttpClientModule
Módulo HttpClientModule y servicio HttpClient
220.
Conexiones con elservidor
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 laapp
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
225.
Navegación por laapp
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
226.
Navegación por laapp
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
404
227.
Navegación por laapp
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
404
Guards
228.
Navegación por laapp
El router
Las rutas
Parámetros: los observables paramMap,
queryParamMap y data de ActivatedRoute
Página por defecto
404
Guards
El RouterOutlet
229.
Navegación por laapp
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
230.
Navegación por laapp
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()
231.
Navegación por laapp
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
232.
Navegación por laapp
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
Pruebascon ng build
ng build:
--prod: código optimizado para producción
--build-optimizer: más optimización
237.
Despliegue a producción
Pruebascon ng build
ng build:
--prod: código optimizado para producción
--build-optimizer: más optimización
--base-href=: cambia el directorio base
238.
Despliegue a producción
Pruebascon ng build
ng build:
--prod: código optimizado para producción
--build-optimizer: más optimización
--base-href=: cambia el directorio base
--sourcemaps: genera los source maps
Links
Documentación oficial deAngular
Playground para Angular
Playground para TypeScript
Configuración del compilador TypeScript
244.
Links
Documentación oficial deAngular
Playground para Angular
Playground para TypeScript
Configuración del compilador TypeScript
Documentación de Angular CLI
245.
Links
Documentación oficial deAngular
Playground para Angular
Playground para TypeScript
Configuración del compilador TypeScript
Documentación de Angular CLI
Configuración de Angular CLI: angular.json
246.
Links
Documentación oficial deAngular
Playground para Angular
Playground para TypeScript
Configuración del compilador TypeScript
Documentación de Angular CLI
Configuración de Angular CLI: angular.json
Documentación sobre todas las API de JavaScript
247.
Links
Documentación oficial deAngular
Playground para Angular
Playground para TypeScript
Configuración del compilador TypeScript
Documentación de Angular CLI
Configuración de Angular CLI: angular.json
Documentación sobre todas las API de JavaScript
JSON Server API
248.
Links
Documentación oficial deAngular
Playground para Angular
Playground para TypeScript
Configuración del compilador TypeScript
Documentación de Angular CLI
Configuración de Angular CLI: angular.json
Documentación sobre todas las API de JavaScript
JSON Server API
Tablas de compatibilidad en navegadores
249.
Links
Documentación oficial deAngular
Playground para Angular
Playground para TypeScript
Configuración del compilador TypeScript
Documentación de Angular CLI
Configuración de Angular CLI: angular.json
Documentación sobre todas las API de JavaScript
JSON Server API
Tablas de compatibilidad en navegadores
Angular en navegadores antiguos