backbone dev talk by max mamis

21
A Quick Overview of Backbone

Upload: prolific-interactive

Post on 30-Jun-2015

77 views

Category:

Technology


1 download

DESCRIPTION

Backbone Dev Talk by Max Mamis

TRANSCRIPT

Page 1: Backbone Dev Talk by Max Mamis

A Quick Overview of Backbone

Page 2: Backbone Dev Talk by Max Mamis
Page 3: Backbone Dev Talk by Max Mamis

What is it?

● Minimal Javascript library for building Web apps

● Built on top of Underscore.js, a utility library by the same developer

Page 4: Backbone Dev Talk by Max Mamis

What does it provide?

● Model● View● Router● Events● That’s it!

Page 5: Backbone Dev Talk by Max Mamis

So, it’s MVC?

Page 6: Backbone Dev Talk by Max Mamis

What doesn’t it provide?

● Automatic data binding (like Ember, Angular)

● Template rendering● Pretty much anything else

Page 7: Backbone Dev Talk by Max Mamis

Models

● Sync (CRUD)○ model.fetch(), model.save(), model.destroy()○ override Backbone.sync() to implement custom

syncing functionality for all models● Collections

○ Contain models, models can contain collections○ Lots of useful operations

■ map, reduce, filter, sort, shuffle, etc

Page 8: Backbone Dev Talk by Max Mamis

Views

“...are almost more convention than they are actual code”

- the source

Page 9: Backbone Dev Talk by Max Mamis

Views

● Creates an element○ Give your view class some combo of properties tagName,

className, id○ Or pass in a pre-existing DOM element

● Delegates events○ ‘click a.someClass’: ‘goToLink’; calls this.goToLink()

● view.$○ jQuery/Zepto object in the context of the view’s DOM

element (i.e. this.$(‘a.someClass’).hide();)

Page 10: Backbone Dev Talk by Max Mamis
Page 11: Backbone Dev Talk by Max Mamis
Page 12: Backbone Dev Talk by Max Mamis
Page 13: Backbone Dev Talk by Max Mamis
Page 14: Backbone Dev Talk by Max Mamis
Page 15: Backbone Dev Talk by Max Mamis
Page 16: Backbone Dev Talk by Max Mamis
Page 17: Backbone Dev Talk by Max Mamis

Why Backbone?

● Small — <20k! (minified)○ Compared to Ember (64k) or Angular (81k)○ Great for mobile!

● No magic● Intuitive

Page 18: Backbone Dev Talk by Max Mamis
Page 19: Backbone Dev Talk by Max Mamis

Backbone & Node?

Sure, why not?

Page 20: Backbone Dev Talk by Max Mamis

Backbone & Node?

● DIY○ Models: just override Backbone.sync()○ Views: render templates and serve them as HTML

instead of injecting into DOM?● AirBNB Rendr

○ Express Middleware○ Handles all that for you

Page 21: Backbone Dev Talk by Max Mamis

Fin