SlideShare uma empresa Scribd logo
1 de 15
KnockoutJS
MVVM na web para simplificar seu código de UI
Alberto Monteiro
alberto.monteiro@live.com
http://github.com/albertomonteiro
Alberto Monteiro
• Especialista C#/.NET
• Desenvolvedor há 5 anos
• Arquiteto de Software na Fortes Informática
• @aibertomonteiro
• alberto.monteiro@live.com
• http://blog.albertomonteiro.net.br/
• http://github.com/albertomonteiro
Conceitos chaves
Bindings declarativos
Fácil associação do
elementos do DOM com
seu modelo
UI refresh automático
Quando seu modelo muda,
sua UI atualiza
automaticamente
Rastreamento de
dependência
Atualização de UI de acordo
com a mudança do seu
objeto
Templates
Engine de templates
built-in.
Knockout
• Open source
• Puro javascript
• Pequeno
• Sem dependências
• Ótima documentação
• Suporte a vários browsers
Knockout
MVVM – Model View View Model
TodoMVC
TodoMVC
Bindings – Campos de formularios
 value
 click
 submit
 enable/disable
 checked
 options/selectedOptions
 event
 textInput/hasFocus
Bindings – Controle de fluxo
 foreach
 if
 ifnot
 with
 component/custom tags
Bindings – Controlando texto e aparência
 text
 attr
 css
 visible
 html
 style
Custom bindings
Extenders
Subscribe

Mais conteúdo relacionado

Mais procurados

Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"Stefan Horochovec
 
Sweet Child O' Themes
Sweet Child O' ThemesSweet Child O' Themes
Sweet Child O' ThemesBreno Alves
 
SlideMeme - Habilitando o SlideShare dentro do Yahoo! Meme - Yahoo! Open Hack...
SlideMeme - Habilitando o SlideShare dentro do Yahoo! Meme - Yahoo! Open Hack...SlideMeme - Habilitando o SlideShare dentro do Yahoo! Meme - Yahoo! Open Hack...
SlideMeme - Habilitando o SlideShare dentro do Yahoo! Meme - Yahoo! Open Hack...Carlos Duarte do Nascimento
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorGustavo Bellini Bigardi
 
Aplicações Web Realtime
Aplicações Web RealtimeAplicações Web Realtime
Aplicações Web RealtimeGabriel Gularte
 
Receita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndReceita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndLeonardo Balter
 
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsersGustavo Bellini Bigardi
 
Meetup Wordpress SEO - Porto Janeiro 2015
Meetup Wordpress SEO - Porto Janeiro 2015Meetup Wordpress SEO - Porto Janeiro 2015
Meetup Wordpress SEO - Porto Janeiro 2015Miguel Brandão
 
Java script vs vb script
Java script vs vb scriptJava script vs vb script
Java script vs vb scriptNielson Santana
 
MVVM Deep Dive - Paulo Aboim Pinto
MVVM Deep Dive - Paulo Aboim PintoMVVM Deep Dive - Paulo Aboim Pinto
MVVM Deep Dive - Paulo Aboim PintoComunidade NetPonto
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front endDouglas Matoso
 
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For Mac
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For MacNovidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For Mac
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For MacThiago Bertuzzi
 
Utilizando Polymer em aplicações móveis
Utilizando Polymer em aplicações móveisUtilizando Polymer em aplicações móveis
Utilizando Polymer em aplicações móveisStefan Horochovec
 
Blazor, web assembly e o futuro do browser
Blazor, web assembly e o futuro do browserBlazor, web assembly e o futuro do browser
Blazor, web assembly e o futuro do browserGustavo Bellini Bigardi
 
Progressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundoProgressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundoAndre Baltieri
 
MVP Week 2020 - Aplicações Modernas com Blazor WASM
MVP Week 2020 - Aplicações Modernas com Blazor WASMMVP Week 2020 - Aplicações Modernas com Blazor WASM
MVP Week 2020 - Aplicações Modernas com Blazor WASMGustavo Bellini Bigardi
 
Por que devo aprender JavaScript?
Por que devo aprender JavaScript?Por que devo aprender JavaScript?
Por que devo aprender JavaScript?Breno Alves
 

Mais procurados (20)

Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"
 
Sweet Child O' Themes
Sweet Child O' ThemesSweet Child O' Themes
Sweet Child O' Themes
 
SlideMeme - Habilitando o SlideShare dentro do Yahoo! Meme - Yahoo! Open Hack...
SlideMeme - Habilitando o SlideShare dentro do Yahoo! Meme - Yahoo! Open Hack...SlideMeme - Habilitando o SlideShare dentro do Yahoo! Meme - Yahoo! Open Hack...
SlideMeme - Habilitando o SlideShare dentro do Yahoo! Meme - Yahoo! Open Hack...
 
Canal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com BlazorCanal Coding Night - Sua primeira aplicação com Blazor
Canal Coding Night - Sua primeira aplicação com Blazor
 
Aplicações Web Realtime
Aplicações Web RealtimeAplicações Web Realtime
Aplicações Web Realtime
 
Receita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndReceita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front End
 
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
 
Meetup Wordpress SEO - Porto Janeiro 2015
Meetup Wordpress SEO - Porto Janeiro 2015Meetup Wordpress SEO - Porto Janeiro 2015
Meetup Wordpress SEO - Porto Janeiro 2015
 
Java script vs vb script
Java script vs vb scriptJava script vs vb script
Java script vs vb script
 
MVVM Deep Dive - Paulo Aboim Pinto
MVVM Deep Dive - Paulo Aboim PintoMVVM Deep Dive - Paulo Aboim Pinto
MVVM Deep Dive - Paulo Aboim Pinto
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
Método The bridge
Método The bridgeMétodo The bridge
Método The bridge
 
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For Mac
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For MacNovidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For Mac
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For Mac
 
Utilizando Polymer em aplicações móveis
Utilizando Polymer em aplicações móveisUtilizando Polymer em aplicações móveis
Utilizando Polymer em aplicações móveis
 
Lab
LabLab
Lab
 
Blazor, web assembly e o futuro do browser
Blazor, web assembly e o futuro do browserBlazor, web assembly e o futuro do browser
Blazor, web assembly e o futuro do browser
 
Progressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundoProgressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundo
 
MVP Week 2020 - Aplicações Modernas com Blazor WASM
MVP Week 2020 - Aplicações Modernas com Blazor WASMMVP Week 2020 - Aplicações Modernas com Blazor WASM
MVP Week 2020 - Aplicações Modernas com Blazor WASM
 
Por que devo aprender JavaScript?
Por que devo aprender JavaScript?Por que devo aprender JavaScript?
Por que devo aprender JavaScript?
 
Webstandardsppt
WebstandardspptWebstandardsppt
Webstandardsppt
 

Semelhante a CEJS 2014 - KnockoutJS

ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)Giovanni Bassi
 
Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019Gabriel Rodrigues Couto
 
Novidades ASP .NET MVC 3 (BETA)
Novidades ASP .NET MVC 3 (BETA)Novidades ASP .NET MVC 3 (BETA)
Novidades ASP .NET MVC 3 (BETA)C. Augusto Proiete
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
 
SATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSSATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSAnderson Contreira
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)Giovanni Bassi
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosRyan Padilha
 
ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010Giovanni Bassi
 
Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap Raniere de Lima
 
SonarQube
SonarQubeSonarQube
SonarQubeCDS
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...Amazon Web Services
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Renato Groff
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 

Semelhante a CEJS 2014 - KnockoutJS (20)

ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
 
Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019
 
Novidades ASP .NET MVC 3 (BETA)
Novidades ASP .NET MVC 3 (BETA)Novidades ASP .NET MVC 3 (BETA)
Novidades ASP .NET MVC 3 (BETA)
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 
SATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSSATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWS
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e Desafios
 
ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap
 
Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5Workshop ASP.NET MVC 5
Workshop ASP.NET MVC 5
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 
SonarQube
SonarQubeSonarQube
SonarQube
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Web Dev Camp
Web Dev CampWeb Dev Camp
Web Dev Camp
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 

Mais de Alberto Monteiro

Mais de Alberto Monteiro (7)

SOLID Os princípios da linguagem orientada a objeto
SOLID Os princípios da linguagem orientada a objetoSOLID Os princípios da linguagem orientada a objeto
SOLID Os princípios da linguagem orientada a objeto
 
Expressões regulares
Expressões regularesExpressões regulares
Expressões regulares
 
ASP.NET Single Page Application
ASP.NET Single Page ApplicationASP.NET Single Page Application
ASP.NET Single Page Application
 
Comtec 2012 - C# Async
Comtec 2012 - C# AsyncComtec 2012 - C# Async
Comtec 2012 - C# Async
 
Ce JS 23 06-2012
Ce JS 23 06-2012Ce JS 23 06-2012
Ce JS 23 06-2012
 
Live code
Live codeLive code
Live code
 
Comtec 2011
Comtec 2011Comtec 2011
Comtec 2011
 

CEJS 2014 - KnockoutJS