Ismael.figueroa@pucv.cl http://www.inf.ucv.cl/~ifigueroa Introducción a Javascript Moderno Dr. Ismael Figueroa ismael.figueroa@pucv.cl http://www.inf.ucv.cl/~ifigueroa.

Slides:



Advertisements
Presentaciones similares
DESARROLLO DE APLICACIONES MOVILES I. Temas – CheckBox – Spinner.
Advertisements

Exposición Dreamweaver Integrantes: Piero Alvarez Andrea Deleg Cristian Rodriguez Milena Gomez Jhoni Leon.
T APESTRY Framework Java para Aplicaciones Web. Q UÉ ES T APESTRY Framework de Java, actualmente en su versión 5 (5.1 estable, 5.2 alpha) Implementa MVC.
Principios, teoría y práctica sobre los conceptos de HTML básicos.
Hojas de Estilo en Cascada CSS RAFAEL MOURGLIA. CSS son las siglas de Cascade Style Sheet que traducido significa hojas de estilo en cascada. Las hojas.
Aplicación con Angular, Ionic y PHP Por: Luis Salvador.
2012-BM5A. Introducción Todos los lenguajes de programación son distintos entre si. Sin embargo, pueden ser agrupados según la forma de pensar y estructurar.
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
CONFIGURACIÓN DE DRUPAL. Una ves instalado drupal, al visitar el sitio por primera ves aparecerá la siguiente pantalla: Visite este vínculo para crear.
AngulaJS Por: Luis Salvador. Editar archivo index.html 1.- Editar archivo index.html.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Capítulo 6 Aplicaciones fuera de línea u offline-app
Internet Protocols (IPs)
Clases y Objetos.
Convenciones de nomenclatura y diseño
Estructuras de Control en Visual Basic.net
PERIODO 1 – CLASE 2.
Introducción al Proyecto
Introducción a la Programación Multimedial
Programación Orientada a Objetos
“POLIMORFISMO PARAMETRICO”
Programación Orientada a Eventos
ECLIPSE.
Gestión Documental SharePoint 2013
Helpers en ASP.NET MVC.
Estructuras de Control en Visual Basic.net
Clases y Objetos en Java
Definición y Conversión de datos
Introducción a programación web Martin Esses
Programación orientada a objetos
TUTORIAL PSeint.
Clases y Objetos en Java
Select Case Visual Basic.
Introducción a Visual Studio .NET
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Fundamentos del lenguaje de programación Condicionales, ciclos, Métodos, enumeraciones Escuela Técnica Superior Kinal Instructor Edwin Tumax.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
¿Qué es IONIC? Ionic es un Framework que nos permite crear de una manera rápida y sencilla aplicaciones móviles multiplataforma (Android, IOS, Windows)
LÓGICA DE PROGRAMACIÓN
HTML, Editores HTML, Servidores Locales
13 Clase/ 5 de noviembre 2015/ Jueves --Exposiciones -Estructura del Cuerpo HTML 5 -CCS --Maquetación en Dreanweaver.
Jorge Iván Villay Daniela Vélez Vélez
ESTRUCTURA DE UN PROGRAMA SIMPLE EN JAVA
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Ruby on Rails Rake Tasks Augusto Studer 18/03/2016.
Fundamentos de programación en TIG 4. Aptana y Arcpy
ESTRUCTURAS DE CONTROL EN VISUAL BASIC.NET Prof.: Rafael Mourglia.
DIRECTIVAS DE SEGURIDAD. QUE SON La Configuración de las directivas de seguridad son reglas que los administradores pueden configurar en un equipo o en.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
FUNDAMENTOS DE PROGRAMACION EN ENTORNO WEB. Rodrigo Cabello Ing. Informático Director de proyectos Think – Ideas in Motion FUNDAMENTOS.
Conceptos básicos de.NET Explorar el entorno de desarrollo Crear un proyecto Visual Basic.NET Use Visual Studio.NET Acceso a datos Depurar e implantar.
Universidad Nacional de Colombia - Leguajes de Programación
Implementación de aplicaciones
¿Qué es un hipervínculo? . Un hipervínculo es un enlace, normalmente entre dos páginas web de un mismo sitio, pero un enlace también puede apuntar a.
Introducción a Windows Forms
Curso Angularn Tema 01b 15/01/2019 Curso JavaScript.
INFORMATICA. Vamos a hablar de...HTML Conceptos del lenguaje Estructura para documentos Herramientas usadas para crear documentos Buenas prácticas.
Introducción al HTML Colnodo Ariel Barbosa & Sylvia Cadena
Lenguajes del lado del cliente
Algunas Características de C++ no presentes en C
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
DESARROLLO DE APLICACIONES WEB INSTRUCTOR: HEMERSON VILLACORTA MANIHUARI.
Tecnología Web Rodrigo Durán y Juan Díaz. ¿Que es?
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Prof. Marcos Heredia.  Primitivos y No Primitivos.
CRUD RELACION (1-N Y N-N) CON LLAVES FORANEAS
1. CONEXIÓN DE JAVA CON MYSQL ING. JOSÉ VÉLIZ. PASO NO. 1 Después de creada la base de datos debemos ingresar a la aplicación Java y crear un nuevo proyecto,
DIAGRAMAS DE FLUJO. D I A G R A M A DE F L UJ O EL DI AGRAMA DE FLUJO ES LA REPRESENTACIÓN GRÁFICA DE DICHA SE CUENCIA DE INSTRUCCIONES QUE CONFORMAN.
Clases y Objetos en Java
Transcripción de la presentación:

ismael.figueroa@pucv.cl http://www.inf.ucv.cl/~ifigueroa Introducción a Javascript Moderno Dr. Ismael Figueroa ismael.figueroa@pucv.cl http://www.inf.ucv.cl/~ifigueroa Oficina 3-23 IBC

Versión actual, moderna Conocida como “Angular 2” o “Angular 4” Basado en componentes, y por defecto se programa en Typescript Versión “legacy” Conocida como “Angular 1.x” Basado en controladores, scopes, y otros Por defecto se programa en ES5

¿Qué es? Es un framework de desarrollo para aplicaciones front-end http://angular.io Es un framework de desarrollo para aplicaciones front-end Sirve para aplicaciones web, de escritorio, y aplicaciones móviles nativas Se utiliza también como parte de otros frameworks, tales como Ionic Utiliza por defecto el lenguaje de programación Typescript

Primeros pasos > npm install -g @angular/cli Angular-CLI permite gestionar nuestras aplicaciones Angular: ng new: crea una nueva aplicación ng serve: levanta el servidor de desarrollo ng generate: crea un nuevo componente, clase, interfaz, etc.

App: Lista de Tareas > ng new todo-list > cd todo-list > ng serve --open Al ejecutar ng new todo-list: Se crea carpeta todo-list con esqueleto de aplicación. Se inicializa repositorio git Se instalan dependencias con npm Al ejecutar ng serve --open: Se inicia webpack para construir/observar recursos usando webpack Se sirve la aplicación en localhost:4200 Se abre el navegador web en dicha Url.

App: Lista de Tareas

App: Lista de Tareas e2e, protractor.conf.js: carpeta para los “end-to-end” tests, y archivo de configuración para su ejecución src, node_modules: código fuente de la aplicación, dependencias npm .angular-cli.json, .editorconfig: configuración de Angular-CLI, configuración para editores de texto karma.conf.js: configuración de test unitarios con Karma tsconfig.json, tslint.json: configuración para Typescript package.json, README.md: configuración de paquete npm, y descripción de la app .gitignore: archivo git para ignorar todo los recursos generados/compilados

App: Lista de Tareas assets: recursos estáticos a usar en la aplicación environments: para manejar configuraciones para distintos ambientes (e.g. desarrollo, producción) index.html: página/plantilla principal, donde se renderizará la aplicación main.ts: archivo que inicializa la aplicación polyfills.ts: código de apoyo para navegadores que no soportan completamente ES6 test.ts: código para ejecutar los tests styles.css: estilos CSS globales tsconfig.*, typings.ds.ts: más configuración de Typescript

En la práctica sólo nos interesa trabajar en la carpeta app, y en las carpetas de otros componentes. El resto del código/archivos es para apoyar las siguientes operaciones npm start: ejecuta ng serve para iniciar servidor npm build: construye una versión de producción/distribución de la app npm test: ejecuta los tests unitarios usando Karma npm lint: ejecuta un análisis sintáctico y de errores de programación npm e2e: ejecuta los test end-to-end

Lista Tareas: src/app Esta carpeta define el componente principal de la aplicación. Cada componente X tiene los siguientes archivos/elementos: X.component.css: define los estilos CSS que serán aplicados al renderizar el componente. Por defecto viene vacío. X.component.html: corresponde a la plantilla/template que se usará para renderizar el contenido del componente. Puede incluir directivas especiales de Angular, y código Typescript. Todas las referencias a valores o variables son relativas a la clase que define el componente. X.component.spec.ts: aquí se especifican los test-unitarios utilizando afirmaciones, postcondiciones, etc. Trae tests simples de ejemplo. X.component.ts: aquí se define la clase que representa este componente, sus variables, estado interno, métodos, etc. Todo este código se puede usar en la plantilla.

Lista Tareas: src/app/app.component.ts Configuración del componente: selector: el nombre del componente, se usa para crear elementos “HTML” templateUrl: donde está la plantilla HTML para renderizar styleUrls: arreglo de ubicaciones para archivos css a aplicar La clase AppComponent que representa el componente. La anotación @Component es un decorador aplicado a la clase AppComponent para marcarla como componente y darle la configuración necesaria

Agregando la clase Tarea Idéntico a ES6, pero: Se deben declarar los campos antes del constructor. Los campos pueden llevar anotaciones de tipo. id: number significa que id tiene tipo numérico. titulo: string significa que titulo tiene tipo string. Los parámetros del constructor no llevan anotaciones de tipo---podrían no ser números o strings---esto es chequeado dinámicamente. Si los parámetros sí tuvieran anotaciones, entonces se podría chequear estáticamente. Esto es un sistema de tipos gradual. > ng generate class Tarea

Agregando estado a App

Agregando estado a App Se incluye TS dentro de la plantilla encerrado entre {{ }} Excepto cuando es parte de directivas tales como ngFor

Directiva ngFor La directiva ngFor se usa para repetir un elemento de la plantilla de manera de crear/renderizar uno por cada elemento de una iteración. El asterisco * indica que ese elemento es la plantilla padre que se usará para renderizar los elementos de la iteración. El código asociado a ngFor introduce variables dentro del alcance de la plantilla, que pueden ser usadas para su renderizado. En nuestro caso se introduce la variable de iteración t. El arreglo tareas se puede acceder porque es un elemento de la clase AppComponent

Directiva ngFor - variables por defecto Al definir ngFor se pueden declarar variables que se basen en valores disponibles automáticamente: index: la posición del elemento en el arreglo first: booleano que es true sólo si el elemento es el primero en el arreglo last: booleano que es true sólo si el elemento es el último del arreglo even: booleano que es true sólo si el elemento está en posición par odd: booleano que es true sólo si el elemento está en posición impar Deben ser asociadas usando let dentro del valor de ngFor

Directivas Estructurales Las directivas estructurales son aquellas responsables de generar el layout HTML. Se usan para cambiar la estructura del DOM, típicamente mediante la manipulación, adición y remoción de elementos. Una directiva estructural aplica al elemento en la que se declara, y a todos sus descendientes. ngFor: repite un elemento/plantilla para cada variable de iteración ngIf: el elemento sólo se muestra si la condición es verdadera ngSwitch: similar al switch en Javascript, muestra sólo 1 opción entre distintas posibilidades Para ejemplificar esto agreguemos un estado a las tareas: Creada, En proceso, Completada

Directivas Estructurales El enum debe ser parte de la clase

Directivas Estructurales / ngIf Primero podemos usar ngIf para mostrar sólo las tareas que están terminadas… Peeero…. Un elemento sólo puede tener una directiva estructural

Directivas Estructurales / ngIf Primero podemos usar ngIf para mostrar sólo las tareas que están terminadas… Peeero…. Un elemento sólo puede tener una directiva estructural

Directivas Estructurales / ngSwitch Podemos usar ngSwitch para elegir distintos componentes para mostrar la tarea, según sea su estado... > ng generate component tarea-creada > ng generate component tarea-en-proceso > ng generate component tarea-terminada

Directivas Estructurales / ngSwitch Modifiquemos nuestras tareas, para que tengan distintos estados, y veamos cómo modificar cada componente (hay que modificar el constructor de Tarea también!!)

Decorador @Input Usando el decorador @Input indica que tarea es una propiedad de entrada que debe ser especificada al instanciar el componente

Decorador @Input Actualice los otros componentes para que rendericen las tareas con estilos diferentes!!

Directivas Estructurales / ngSwitch ¿Cómo le pasamos información a los sub-componentes, para que tengan acceso al objeto tarea que tienen que renderizar?

Formularios

Creando Formularios Angular provee dos tipos de formularios: Templated-based Forms: se basa en directivas, eventos, y binding bidireccional para hacer seguimiento sobre los valores y validez de los datos ingresados en los formularios… se basa en la sintaxis de templates, y es similar a cómo lo haríamos en HTML/JS normal. Reactive Forms: se trata de construir programáticamente, usando el API de formularios reactivos. Permite centralizar los campos, validaciones y detalles en una sola entidad de código. Hoy veremos el primer tipo de formularios