SlideShare a Scribd company logo
1 of 26
Download to read offline
Backbone.js
João Helis
Smith Ascari
http://backbonejs.org
Agenda
1. Backbone.js
2. Model
3. View
4. Collection
5. Router
6. Cinephilebox
Backbone.js
➢ framework em javascript para estruturar
aplicações web.
➢ Client-side
➢ open source
➢ abordagem MVC
Backbone.js
➢ dependências
○ Underscore.js
○ jQuery
Model
➢ O coração de qualquer aplicação javaScript
➢ Contém os dados da aplicação e grande
parte da sua lógica
Model
➢ Criar um Model
➢ window.User = Backbone.Model.extend({});
Model
➢ Criando uma instancia do Model
➢var user = new User()
var user = new User({ name:"João Helis",
email:"joaohelis.bernardo@dce.ufpb.br" })
Model
➢ Definindo construtores
window.User = Backbone.Model.extend({
initialize: function () {
console.log("This model has been initialized");
}
}
Model
➢ Valores default
➢
window.User = Backbone.Model.extend({
defaults: {
name: "Seu Zé",
email: "ze@dce.ufpb.br"
}
});
Model
Os Models tem um conjunto de métodos prédefinidos pelo
Backbone.js
– extend – constructor / initialize – get
– set – escape – has
– unset – clear – id
– changed – defaults – toJSON
(....)
Todos os métodos de Backbone.Model (http://backbonejs.org/#Model)
Model
➢ Métodos Get e Set
➢user.set({name: "Smith"});
user.get("name");
View
➢ Organiza a interface
➢ Não possui código HTML
➢ Apoiada por Model’s (define como apresentá-los)
View
Criar uma View
var UserView = Backbone.View.extend({});
View
Criar view
var UserView = Backbone.View.extend({
initialize: function () {
this.render();
},
render: function () {
$(this.el).html(this.template(this.model.toJSON()));
return this;
}
});
View
➢ extend
○ para criação de views personalizadas
○ herda propiedades e funções
○ events, render, className, tagName
View
➢ el
○ é um elemento do DOM
○ o conteúdo da view é inserido nele
render: function () {
$(this.el).html(this.template(this.model.toJSON()));
},
View
➢ constructor/initialize
○ permite definir propriedades
○ executado quando a view é criada
➢ render
○ código para renderizar/atualizar o template
View
➢ events
○ define eventos que serão monitorados
○ segue o formato { “event selector” : “callback” }
// escopo da View
events:{
"click .tab": "tabPaneToggleClass"
},
tabPaneToggleClass: function(event){
if(!$(".btn", event.currentTarget).hasClass("btn-primary"))
$('.btn-tab').toggleClass('btn-primary');
}
Collection
➢ Collection são conjuntos de Modelos
➢var userList = Backbone.Collection.extend({
model: User
});
Collection
➢ Os métodos add e remove
➢
var user = new User({name : "João Helis"});
var userList = new UserList();
taskList.add(user)
Collection
➢ Escutando eventos na Collection
➢
userList.on("add", function(user) {
console.log("User: " + user.get("name") + " added");
});
userList.on("remove", function(user) {
console.log("User: " + user.get("name") + " removed");
});
Collection
➢ Carregando modelos a partir do servidor
➢
var userList = Backbone.Collection.extend({
url: '/user' ←
model: User
});
userList.fetch() ←
Router
➢ conecta ações/URLs a eventos
var AppRouter = Backbone.Router.extend({
routes: {
"" : "home",
"movies/list" : "movieList",
"contact" : "contact",
},
home: function(){
this.configLanding();
$('#carouselBlk').html(new HomeView().el);
},
});
Router
➢ inicialização
○ instancia o Router
○ inicia o monitoramento de mudanças nas URLs
var app = new AppRouter();
Backbone.history.start();
Referência
Documentação do Backbone.js: http://backbonejs.org
Slides do Professor Yuri Malheiros
Backbone.js
Dúvidas?

More Related Content

What's hot

Android bootcamp 06-01-2012 Part 1
Android bootcamp  06-01-2012 Part 1Android bootcamp  06-01-2012 Part 1
Android bootcamp 06-01-2012 Part 1Inael Rodrigues
 
JavaScript - #Aula02 - Desenvolvendo a Primeira Página com JS
JavaScript - #Aula02 - Desenvolvendo a Primeira Página com JSJavaScript - #Aula02 - Desenvolvendo a Primeira Página com JS
JavaScript - #Aula02 - Desenvolvendo a Primeira Página com JSErick L. F.
 
Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Luis Gustavo Almeida
 
Javascript - Biblioteca Jquery
Javascript - Biblioteca JqueryJavascript - Biblioteca Jquery
Javascript - Biblioteca JqueryMultside Digital
 
MSDN Webcast - Melhores práticas cross browser
MSDN Webcast - Melhores práticas cross browserMSDN Webcast - Melhores práticas cross browser
MSDN Webcast - Melhores práticas cross browserJP Clementi
 
Backbone.js - A espinha dorsal de aplicações web
Backbone.js - A espinha dorsal de aplicações webBackbone.js - A espinha dorsal de aplicações web
Backbone.js - A espinha dorsal de aplicações webHenrique Gogó
 
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureWindows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureVitor Ciaramella
 
Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP Luis Gustavo Almeida
 
ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryMarketing Digital ODIG
 
jQuery básico (parte 3)
jQuery básico (parte 3)jQuery básico (parte 3)
jQuery básico (parte 3)Luís Cobucci
 
jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão GeralKaio Valente
 

What's hot (20)

Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
Android bootcamp 06-01-2012 Part 1
Android bootcamp  06-01-2012 Part 1Android bootcamp  06-01-2012 Part 1
Android bootcamp 06-01-2012 Part 1
 
Java script aula 07 - j-query
Java script   aula 07 - j-queryJava script   aula 07 - j-query
Java script aula 07 - j-query
 
Java script aula 05 - funções
Java script   aula 05 - funçõesJava script   aula 05 - funções
Java script aula 05 - funções
 
Java script - funções
Java script - funçõesJava script - funções
Java script - funções
 
Introdução ao JQuery e AJAX
Introdução ao JQuery e AJAXIntrodução ao JQuery e AJAX
Introdução ao JQuery e AJAX
 
Java script aula 02 - operadores
Java script   aula 02 - operadoresJava script   aula 02 - operadores
Java script aula 02 - operadores
 
JavaScript - #Aula02 - Desenvolvendo a Primeira Página com JS
JavaScript - #Aula02 - Desenvolvendo a Primeira Página com JSJavaScript - #Aula02 - Desenvolvendo a Primeira Página com JS
JavaScript - #Aula02 - Desenvolvendo a Primeira Página com JS
 
Java script aula 06 - dom
Java script   aula 06 - domJava script   aula 06 - dom
Java script aula 06 - dom
 
Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017
 
Javascript - Biblioteca Jquery
Javascript - Biblioteca JqueryJavascript - Biblioteca Jquery
Javascript - Biblioteca Jquery
 
MSDN Webcast - Melhores práticas cross browser
MSDN Webcast - Melhores práticas cross browserMSDN Webcast - Melhores práticas cross browser
MSDN Webcast - Melhores práticas cross browser
 
jQuery na Prática!
jQuery na Prática!jQuery na Prática!
jQuery na Prática!
 
Backbone.js - A espinha dorsal de aplicações web
Backbone.js - A espinha dorsal de aplicações webBackbone.js - A espinha dorsal de aplicações web
Backbone.js - A espinha dorsal de aplicações web
 
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureWindows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows Azure
 
Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP Crawling - Coleta de dados na Web com PHP
Crawling - Coleta de dados na Web com PHP
 
ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQuery
 
jQuery básico (parte 3)
jQuery básico (parte 3)jQuery básico (parte 3)
jQuery básico (parte 3)
 
Html dom, eventos, jquery
Html dom, eventos, jqueryHtml dom, eventos, jquery
Html dom, eventos, jquery
 
jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão Geral
 

Viewers also liked

A ESTRUTURAÇÃO DA EDUCAÇÃO VIRTUALIZADA NAS ESCOLAS INDÍGENAS DE BAÍA DA TRAI...
A ESTRUTURAÇÃO DA EDUCAÇÃO VIRTUALIZADA NAS ESCOLAS INDÍGENAS DE BAÍA DA TRAI...A ESTRUTURAÇÃO DA EDUCAÇÃO VIRTUALIZADA NAS ESCOLAS INDÍGENAS DE BAÍA DA TRAI...
A ESTRUTURAÇÃO DA EDUCAÇÃO VIRTUALIZADA NAS ESCOLAS INDÍGENAS DE BAÍA DA TRAI...João Helis Bernardo
 
Defesa TCC: "Os problemas de Escrita no 1° ano do Ensino Médio"
Defesa TCC: "Os problemas de Escrita no 1° ano do Ensino Médio"Defesa TCC: "Os problemas de Escrita no 1° ano do Ensino Médio"
Defesa TCC: "Os problemas de Escrita no 1° ano do Ensino Médio"Camila Soldati
 
Slide do curso sobre Apresentacão oral do TCC
Slide do curso sobre Apresentacão oral do TCCSlide do curso sobre Apresentacão oral do TCC
Slide do curso sobre Apresentacão oral do TCCNatan Aleixo
 
Slides para Apresentação acadêmica
Slides para Apresentação acadêmicaSlides para Apresentação acadêmica
Slides para Apresentação acadêmicaRafaelBorges3
 

Viewers also liked (7)

A ESTRUTURAÇÃO DA EDUCAÇÃO VIRTUALIZADA NAS ESCOLAS INDÍGENAS DE BAÍA DA TRAI...
A ESTRUTURAÇÃO DA EDUCAÇÃO VIRTUALIZADA NAS ESCOLAS INDÍGENAS DE BAÍA DA TRAI...A ESTRUTURAÇÃO DA EDUCAÇÃO VIRTUALIZADA NAS ESCOLAS INDÍGENAS DE BAÍA DA TRAI...
A ESTRUTURAÇÃO DA EDUCAÇÃO VIRTUALIZADA NAS ESCOLAS INDÍGENAS DE BAÍA DA TRAI...
 
Ponteal100
Ponteal100Ponteal100
Ponteal100
 
Defesa TCC: "Os problemas de Escrita no 1° ano do Ensino Médio"
Defesa TCC: "Os problemas de Escrita no 1° ano do Ensino Médio"Defesa TCC: "Os problemas de Escrita no 1° ano do Ensino Médio"
Defesa TCC: "Os problemas de Escrita no 1° ano do Ensino Médio"
 
Slide do curso sobre Apresentacão oral do TCC
Slide do curso sobre Apresentacão oral do TCCSlide do curso sobre Apresentacão oral do TCC
Slide do curso sobre Apresentacão oral do TCC
 
TCC SLIDE DE APRESENTAÇÃO
TCC SLIDE DE APRESENTAÇÃOTCC SLIDE DE APRESENTAÇÃO
TCC SLIDE DE APRESENTAÇÃO
 
Apresentando TCC
Apresentando TCCApresentando TCC
Apresentando TCC
 
Slides para Apresentação acadêmica
Slides para Apresentação acadêmicaSlides para Apresentação acadêmica
Slides para Apresentação acadêmica
 

Similar to Backbone.js - Desenvolvimento de Sistemas Corporativos - UFPB - Campus IV

LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.jsGiovanni Bassi
 
Evento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontEvento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontMichel Ribeiro
 
PDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NETPDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NETslides_teltools
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheirasLambda 3
 
Javascript truquesmagicos
Javascript truquesmagicosJavascript truquesmagicos
Javascript truquesmagicosponto hacker
 
jQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajolijQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajoliCaue Fajoli
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfGabrielaMota46
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.Rogério Napoleão Jr.
 
KnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realKnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realComunidade NetPonto
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Carlos Duarte do Nascimento
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoFreedom DayMS
 

Similar to Backbone.js - Desenvolvimento de Sistemas Corporativos - UFPB - Campus IV (20)

LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.js
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Mini curso de c#.net
Mini curso de c#.netMini curso de c#.net
Mini curso de c#.net
 
Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
Evento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontEvento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de Front
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
PDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NETPDC - Engenharia - Plataforma Microsoft .NET
PDC - Engenharia - Plataforma Microsoft .NET
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheiras
 
Javascript truquesmagicos
Javascript truquesmagicosJavascript truquesmagicos
Javascript truquesmagicos
 
jQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajolijQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê Fajoli
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdf
 
Hello vue
Hello vueHello vue
Hello vue
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
Implementação de
Implementação de Implementação de
Implementação de
 
Python 06
Python 06Python 06
Python 06
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
 
KnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realKnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida real
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com Django
 

Backbone.js - Desenvolvimento de Sistemas Corporativos - UFPB - Campus IV