Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Meet Backbone.js

Meet Backbone.js

Slides for my workshop at Betabeers Córdoba, AN. It's an overview of Backbone.js and it's explained with an example application available at Github. Enjoy

Javier Velasco

October 18, 2012
Tweet

More Decks by Javier Velasco

Other Decks in Programming

Transcript

  1. Backbone.js Qué es Backbone.js? Backbone.js gives structure to web applications

    by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface. http://backbonejs.org
  2. Backbone.js Por qué es necesario? Organiza la estructura de tu

    app. Simplifica la persistencia en el server-side. Desacopla el DOM de los datos. Sincroniza modelos, colecciones con el DOM. “Get  your  truth  out  of  the  DOM”   Jeremy  Ashkenas  
  3. Backbone.js MVC MV* Modelos que representan el dominio de la

    aplicación. Vistas que se suelen asociar a UI. Controladores que manejan la interacción. Backbone.js delega responsabilidades del controlador en las vistas y convierte el controlador en el router
  4. Backbone.js Models Muchos métodos útiles defaults establece valores por defecto

    clear elimina los atributos toJSON formatea los atributos validate valida al modificar http://backbonejs.org/#Model
  5. Backbone.js Views Se pueden crear eventos sobre la vista: Multiples

    motores de template: Underscore, Mustache.js, Eco..
  6. Backbone.js Router & history Varias vistas centradas en el mismo

    elemento del DOM Al hacer el switch entre vistas, el navegador no cambia de URL Para eso ofrece Backbone.js el router. Until recently, hash fragments (#page) were used to provide these permalinks, but with the arrival of the History API, it’s now possible to use standard URLs (/page). Backbone.Router provides methods for routing client-side pages, and connecting them to actions and events http://backbonejs.org
  7. Backbone.js Gracias al pushState se evita el hashbang! Router &

    history Se suele llamar a start incluyéndolo en un método del router A tener en cuenta utilizando pushState API: El server debe ser capaz de generar la página Los eventos se deben disparar a mano
  8. Backbone.js Zombie views: instanciar modelos, asociarlos a vistas sobre el

    mismo DOM element. La instancia de modelo cambia, la vista se re-renderiza; es un gran problema. Memory leak: declarar constantemente instancias. Siempre que sea posible hay que instanciar los objetos una vez. RESTful applications: el mapping entre ids debe estar en armonía. Buena integración, pero hay que pensarlo siempre. Otros... Aspectos importantes
  9. Backbone.js Official Documentation http://backbonejs.org/ Recipes with Backbone.js by Nick Gauthier

    http://recipeswithbackbone.com/ Developing Backbone Applications by Addy Osmani http://addyosmani.github.com/backbone-fundamentals/ Backbone.js Patterns by Rico Sta Cruz http://ricostacruz.com/backbone-patterns/ Recursos
  10. Backbone.js RESTful Resource   GET   POST   PUT  

    DELETE   /films   Obtener   lista  de  films   Crear  nuevo   film   -­‐-­‐   -­‐-­‐   /films/id   Obtener  un   film   -­‐-­‐   Modificar   un  film   Eliminar  un   film   Posibles peticiones al server