frameworks js - uniandesisis3710/...framework js para front-end-orientado a componentes -data...

74
FRAMEWORKS JS ISIS 3710

Upload: others

Post on 05-Jun-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

FRAMEWORKS JSISIS 3710

Page 2: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Frameworks JS

http://todomvc.com/

Page 3: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

NPM

https://www.npmjs.com/

Page 4: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

NPM

https://www.npmjs.com/

npm viene con la instalación de node

Instalación global (busca package.json)

Los archivos se descargan en node_modules

Page 5: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Bower

https://bower.io/

Page 6: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Bower

https://bower.io/

Se requiere git, node, npm

Comando

Page 7: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

bower.json

https://github.com/bower/spec/blob/master/json.md

Page 8: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Bower

Ejemplos bower.json

https://github.com/twbs/bootstrap/blob/d0926f2debde5e920ca369ad56a07e7c8bacdd89/bower.json

Bootstrap

Boostrap-saashttps://github.com/twbs/bootstrap-sass/blob/

1f269b15ff91ebe35fc04959a6e38caecb19dc4f/bower.json

Page 9: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Bower

https://bower.io/

Los paquetes se instalan en bower_components/ (en el mismo dir donde se encuentra bower.json)

Page 10: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Grunt

http://gruntjs.com/

Page 11: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Gruntfile.js

http://gruntjs.com/

Page 12: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Grunt

Se requiere git, node, npm

Comando para compilar y ejecutar servidor web

http://gruntjs.com/

Comando para ejecutar pruebas

Page 13: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman

http://yeoman.io/

Page 14: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman

http://yeoman.io/

Page 15: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman

Se requiere git, node, npm

Comando para instalar generadores

http://yeoman.io/

Page 16: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman: Angular JS generator

Se requiere git, node, npm, bower, yo, grunt, karma

Comando para generar app

https://github.com/yeoman/generator-angular

Page 17: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman: Angular JS generator

Page 18: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman: Angular JS generator

Page 19: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman: Angular JS generator

Page 20: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman: Angular JS generator

Page 21: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman: Angular JS generator

Page 22: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en
Page 23: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Angular

Framework JS para front-end

- Orientado a componentes

- Data binding entre la vista y el controlador

- Orientado al desarrollo de web apps basadas en CRUD

- Angular no es una buena opción para aplicaciones con complicada e intensa manipulación DOM

Page 24: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Angular

Template

Template

Template

Controller

Controller

Controller

Archivos HTML con directivas Angular

Datos y funcionalidad enlazada a la vista (JS)

Page 25: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Angular

Template

Template

Template

Controller

Controller

Controller

Archivos HTML con directivas Angular

Datos y funcionalidad enlazada a la vista (JS)

Scope

Page 26: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Módulo Angular

Template

Template

Template

Controller

Controller

Controller

Scope

ServiceService

Service

Router

Page 27: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Angular: Módulos

/scripts/app.js

Page 28: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Angular: Módulos

/scripts/app.js

Nombre del módulo

Page 29: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Angular: Módulos

/scripts/app.js

Dependencias (otros módulos)

Page 30: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

La directiva ng-app se usa para enlazar un template con el módulo

Angular: Módulos

El template debe incluir el js de angular y los js con la declaración de los módulos

Page 31: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

ISIS3710App

isis3710App

/scripts/app.js

Page 32: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Angular: Controladores

Se declara como una función constructora adjunta a un módulo y se incluye en el template

Page 33: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Angular: Controladores

Se declara como una función constructora adjunta a un módulo y se incluye en el template

Se definen atributos y métodos para data binding con la vista

Page 34: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Angular: Controladores

/scripts/controllers/main.js

Page 35: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

ISIS3710App

isis3710App

/scripts/app.js

/scripts/controllers/main.js

(isis3710App)MainCtrl

Page 36: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman !!

Page 37: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman !!

Page 38: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman !!

Page 39: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman !!

Page 40: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman !!

Page 41: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Angular: Controladores

/scripts/controllers/users.js

Page 42: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Angular: Controladores

Ejemplo de https://docs.angularjs.org/guide/concepts

Page 43: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

ISIS3710App

isis3710App

/scripts/app.js

/scripts/controllers/main.js(isis3710App)

MainCtrl

/scripts/controllers/users.js

(isis3710App)UsersCtrl

Page 44: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Data binding

Sincronización automática de datos entre el modelo y los componentes en la vista:

cuando el modelo cambia, la vista refleja el cambio, y viceversa

Template

HTML + directivas

Page 45: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Data binding

Sincronización automática de datos entre el modelo y los componentes en la vista:

cuando el modelo cambia, la vista refleja el cambio, y viceversa

Template

HTML + directivas

View

Compilación (browser)

Page 46: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Data binding

Sincronización automática de datos entre el modelo y los componentes en la vista:

cuando el modelo cambia, la vista refleja el cambio, y viceversa

Template

HTML + directivas

View

Compilación (browser)

Modelo

Binding

Page 47: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Page 48: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Page 49: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

????

Page 50: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Controller

Template

Page 51: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Controller

Template

Page 52: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Controller

Template

Page 53: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Controller

Template

Page 54: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Template ControllerScope

Scope

Page 55: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Incluir una vista y enlazar la vista a un controlador

Page 56: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Yeoman !!

Page 57: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

/views/users.html

Templates (Views)

Page 58: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

index.html

Templates (Views)

Page 59: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

index.html

Templates (Views)

Page 60: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Page 61: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Page 62: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Page 63: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

ISIS3710App

isis3710App

/scripts/app.js

/scripts/controllers/main.js

(isis3710App)MainCtrl

/scripts/controllers/users.js

(isis3710App)UsersCtrl

/views/users.html

(isis3710App)UsersCtrl

index.html

Page 64: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Page 65: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

Page 66: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

main (view)

users (view)

Page 67: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

main (view)

users (view)

Page 68: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Templates (Views)

main (view)

users (view)

Page 69: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

ISIS3710App

isis3710App

/scripts/app.js

/scripts/controllers/main.js

(isis3710App)MainCtrl

/scripts/controllers/users.js

(isis3710App)UsersCtrl

/views/users.html

(isis3710App)UsersCtrl

index.html

/views/main.html

(isis3710App)MainCtrl

Page 70: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Directivas

- Data binding entre templates y controllers

- Estructura de control e iterativas para elementos DOM

- Visualización (ocultar/mostrar) elementos DOM

- Manipulación/Gestión de eventos

- Modificación de elementos DOM

- Agrupamiento de componentes para reuso

- Formularios y validación

Page 71: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Directivas

https://docs.angularjs.org/api/ng/directive

ng-if:

ng-model:

ng-repeat:

remueve o re-crea elemento basado en expresión booleana

data binding de un elemento HTML a una propiedad en el scope

iterador

expresiones no funcionan con atributo src

method binding o expresión para evento click

ng-src:

ng-click:

Page 72: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Directivas

https://docs.angularjs.org/api/ng/directive

ng-repeat:

Page 73: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Directivas

https://docs.angularjs.org/api/ng/directive

ng-src:

Page 74: FRAMEWORKS JS - Uniandesisis3710/...Framework JS para front-end-Orientado a componentes -Data binding entre la vista y el controlador -Orientado al desarrollo de web apps basadas en

Directivas

https://docs.angularjs.org/api/ng/directive

ng-click: