SlideShare a Scribd company logo
1 of 16
Criado por Steve Sanderson (Microsoft)

. Objectivo
Desenvolver uma biblioteca que permitisse criar
aplicações que respondam rapidamente e com um
modelo de dados bem estruturado
Caracteristicas
. Sincronização de dados
. MVVM Development pattern
. Suporta outras bibliotecas
. Suportado por todos os browsers
Conceitos base
. MVVM (Model, View, View Model)
. Data Binding (ligação de dados)
. Observables
. Computed Observables
. Templating
Fluxo MVVM
                    View
                    Model

             View


utilizador          Model
Model
Camada de negócio, dados em formato json


View Model
Adapta informação proveniente do model de forma a
ser implementada facilmente na view


View (HTML puro)
<span data-bind="text: nome"></span>
Data Binding
<span data-bind="text: nome"></span>

O atributo data-bind permite à view e ao
ViewModel manterem-se sincronizados.
Observables
this.nome = ko.observable(variável)

Observa alterações nas propriedades,
permitindo actualização das mesmas em
tempo real sempre que houver alterações
Computed Observables
São funções que dependem de um ou mais observables
e que se actualizam automaticamente sempre que as
suas dependências tiverem alterações

this.nomeCompleto = ko.computed(function() {
       return this.nome + ' ' + this.apelido
   }, this);

o segundo argumento da função (this) permite passar a palavra
reservada this sem alterar seu escopo dentro da função
Templating
. Native templating
- Utilizando Control Flow Bindings


. String-based templating
- Permite integração com frameworks de templating
(ex: underscore.js, jquery.tmpl, mustache.js,
handlebars.js)
Control Flow Bindings
Capturam o HTML contido no elemento e utilizam-no
para renderizar informação.

  . foreach
  . if
  . ifnot
  . with
Control Flow Bindings
Exemplo


<ul data-bind="foreach: user">
  <li data-bind="text: username">
</ul>

O elemento <ul> será populado com elementos <li> de
acordo com o número de utilizadores existentes.
String Based Templating
Exemplo com integração de control flow binding

<ul data-bind="template: {name: 'user-list-tmpl',
foreach: users}">
</ul>

<script type="text/html" id="user-list-tmpl">
   <li data-bind="text: nome"></li>
</script>
Lifesavers
. knockoutjs.com
. knockmeout.net
. stackoverflow.com/questions/
tagged/knockout.js
.https://groups.google.com/forum/?
fromgroups#!forum/knockoutjs
Útil

http://channel9.msdn.
com/Events/MIX/MIX11/FRM08
Thanks
Mário Andrade
frontendweekly.net

   @MarioRAndrade

Front-end developer @ Codistage.pt

More Related Content

What's hot (19)

Ajax
AjaxAjax
Ajax
 
Java Web 1 Introducao
Java Web 1 IntroducaoJava Web 1 Introducao
Java Web 1 Introducao
 
introdução a ajax
introdução a ajaxintrodução a ajax
introdução a ajax
 
Java web
Java webJava web
Java web
 
Php 06 Crud Mvc
Php 06 Crud MvcPhp 06 Crud Mvc
Php 06 Crud Mvc
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Apresentação Java Web - Jsf+Hibernate
Apresentação Java Web - Jsf+HibernateApresentação Java Web - Jsf+Hibernate
Apresentação Java Web - Jsf+Hibernate
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
 
Apresentação jsf 1_2
Apresentação jsf 1_2Apresentação jsf 1_2
Apresentação jsf 1_2
 
Prog web 08-php-mvc
Prog web 08-php-mvcProg web 08-php-mvc
Prog web 08-php-mvc
 
ApresentaçãO Mvc
ApresentaçãO MvcApresentaçãO Mvc
ApresentaçãO Mvc
 
Backbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectadosBackbone.js + Rails - Front-end e back-end conectados
Backbone.js + Rails - Front-end e back-end conectados
 
Framework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring bootFramework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring boot
 
Jquery Lab
Jquery LabJquery Lab
Jquery Lab
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Gradle spring-hateoas-Lombok
Gradle spring-hateoas-LombokGradle spring-hateoas-Lombok
Gradle spring-hateoas-Lombok
 
Dao
DaoDao
Dao
 

Similar to KnockoutJS introdução

ASP.NET MVC 4 - Parte II - Views
ASP.NET MVC 4 - Parte II - Views ASP.NET MVC 4 - Parte II - Views
ASP.NET MVC 4 - Parte II - Views Carlos Atila Abreu
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCMichael Costa
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endGiovanny Valente
 
[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2Felipe Pimentel
 
AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016Diego Melo
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 

Similar to KnockoutJS introdução (20)

Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
ASP.NET MVC 4 - Parte II - Views
ASP.NET MVC 4 - Parte II - Views ASP.NET MVC 4 - Parte II - Views
ASP.NET MVC 4 - Parte II - Views
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
Framework struts2v2.5
Framework struts2v2.5Framework struts2v2.5
Framework struts2v2.5
 
[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2
 
Aula1
Aula1Aula1
Aula1
 
Apresentação M V C
Apresentação M V CApresentação M V C
Apresentação M V C
 
Dojo vue.js
Dojo vue.jsDojo vue.js
Dojo vue.js
 
Web services
Web servicesWeb services
Web services
 
Apache Struts
Apache StrutsApache Struts
Apache Struts
 
Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
 
teste86940.78038637294
teste86940.78038637294teste86940.78038637294
teste86940.78038637294
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
Mvc - Semifinal
Mvc - SemifinalMvc - Semifinal
Mvc - Semifinal
 
AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016
 
MVC MVP MVVM para Web
MVC MVP MVVM para WebMVC MVP MVVM para Web
MVC MVP MVVM para Web
 
Oficina cake php
Oficina cake phpOficina cake php
Oficina cake php
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 

KnockoutJS introdução