backbonejs full stack

61
BACKBONEJS FULL STACK Artyom Trityak суббота, 1 июня 13 г.

Upload: -

Post on 15-Jan-2015

1.163 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Backbonejs Full Stack

BACKBONEJSFULL STACK

Artyom Trityak

суббота, 1 июня 13 г.

Page 2: Backbonejs Full Stack

суббота, 1 июня 13 г.

Page 3: Backbonejs Full Stack

суббота, 1 июня 13 г.

Page 4: Backbonejs Full Stack

суббота, 1 июня 13 г.

Page 5: Backbonejs Full Stack

✓ AMD

Why?

суббота, 1 июня 13 г.

Page 6: Backbonejs Full Stack

✓ AMD✓ Dependency

management

Why?

суббота, 1 июня 13 г.

Page 7: Backbonejs Full Stack

✓ AMD✓ Dependency

management✓CDN, JSONP, JS

API (FB SDK)

Why?

суббота, 1 июня 13 г.

Page 8: Backbonejs Full Stack

✓ AMD✓ Dependency

management✓CDN, JSONP, JS

API (FB SDK)✓UnitTesting and

refactoring

Why?

суббота, 1 июня 13 г.

Page 9: Backbonejs Full Stack

✓ AMD✓ Dependency

management✓CDN, JSONP, JS

API (FB SDK)✓UnitTesting and

refactoring✓ CommonJS

Why?

суббота, 1 июня 13 г.

Page 10: Backbonejs Full Stack

✓ AMD✓ Dependency

management✓CDN, JSONP, JS

API (FB SDK)✓UnitTesting and

refactoring✓ CommonJS✓ Packages

Why?

суббота, 1 июня 13 г.

Page 11: Backbonejs Full Stack

суббота, 1 июня 13 г.

Page 12: Backbonejs Full Stack

M V *

just components

суббота, 1 июня 13 г.

Page 13: Backbonejs Full Stack

M V *Collection

суббота, 1 июня 13 г.

Page 14: Backbonejs Full Stack

M V *Collection Router

суббота, 1 июня 13 г.

Page 15: Backbonejs Full Stack

M V *Collection Router

Eventsсуббота, 1 июня 13 г.

Page 16: Backbonejs Full Stack

Events

суббота, 1 июня 13 г.

Page 17: Backbonejs Full Stack

Eventson object.on(event, callback, [context]) // local

trigger object.trigger(event, [*args])off object.off([event], [callback], [context])

суббота, 1 июня 13 г.

Page 18: Backbonejs Full Stack

EventslistenTo

object.listenTo(otherObj, event, callback)

stopListening object.stopListening([otherObj], [event], [callback])

✓ Auto called in View.remove✓Should be called in Models and Collections

суббота, 1 июня 13 г.

Page 19: Backbonejs Full Stack

Eventsonce

object.once(event, callback, [context])

listenToOnce object.listenToOnce(otherObj, event, callback)

суббота, 1 июня 13 г.

Page 20: Backbonejs Full Stack

View

суббота, 1 июня 13 г.

Page 21: Backbonejs Full Stack

View

✓ tagName (‘div’, ‘ul’)✓ attributes (hash)✓ className (‘my-cls cls2’)

Wrap container

суббота, 1 июня 13 г.

Page 22: Backbonejs Full Stack

View✓ Insert template in DOM✓ Bind events from `Events` attrs✓ note: No logic✓ note: this.$(‘.cls’) - local scope✓ note: Auto stopListening on

remove()суббота, 1 июня 13 г.

Page 23: Backbonejs Full Stack

No 2-way binding?

суббота, 1 июня 13 г.

Page 24: Backbonejs Full Stack

Sorry,Backbone does

not have itсуббота, 1 июня 13 г.

Page 25: Backbonejs Full Stack

Rivets.jshttps://github.com/mikeric/

rivets

Take what you need and build your app from small pieces

суббота, 1 июня 13 г.

Page 26: Backbonejs Full Stack

Rivets.js✓ simple✓ lightweight 2.3KB✓ 1-way binding✓ 2-way binding✓ formatters✓ customization

суббота, 1 июня 13 г.

Page 27: Backbonejs Full Stack

Rivets.js

суббота, 1 июня 13 г.

Page 28: Backbonejs Full Stack

Model

суббота, 1 июня 13 г.

Page 29: Backbonejs Full Stack

Model✓ set✓ get✓ unset✓new in 0.9.10

суббота, 1 июня 13 г.

Page 30: Backbonejs Full Stack

Model✓ defaults✓ changedAttributes✓ previousAttributes

суббота, 1 июня 13 г.

Page 31: Backbonejs Full Stack

Model✓ fetch✓ destroy

суббота, 1 июня 13 г.

Page 32: Backbonejs Full Stack

Model✓ patch sends only

passed✓ events: change,

request, sync ✓validation on save✓ {silent: true}

save

суббота, 1 июня 13 г.

Page 33: Backbonejs Full Stack

ModelModel .sync() Backbone.sync()

.parse() POSTPUT

.error()

.success()

суббота, 1 июня 13 г.

Page 34: Backbonejs Full Stack

Modelno validation :(

validation

суббота, 1 июня 13 г.

Page 36: Backbonejs Full Stack

Backbone.Validation✓ lot of built-in

validators✓ declarative✓ simple✓ event based

суббота, 1 июня 13 г.

Page 37: Backbonejs Full Stack

Collection

суббота, 1 июня 13 г.

Page 38: Backbonejs Full Stack

Collection✓ just list of models✓ .fetch / .create✓ .add / .remove✓ .set (update) / .get✓ model.url = c.baseUrl + /m.id

суббота, 1 июня 13 г.

Page 39: Backbonejs Full Stack

CollectionCreate new from hash or model

суббота, 1 июня 13 г.

Page 40: Backbonejs Full Stack

Router

суббота, 1 июня 13 г.

Page 41: Backbonejs Full Stack

Router✓ listening url / hash changes✓ pushState: true/false✓ navigate to page✓ add custom routes

суббота, 1 июня 13 г.

Page 42: Backbonejs Full Stack

RouterSimple Router looks like

суббота, 1 июня 13 г.

Page 43: Backbonejs Full Stack

Routeror looks like

суббота, 1 июня 13 г.

Page 44: Backbonejs Full Stack

What next?

суббота, 1 июня 13 г.

Page 45: Backbonejs Full Stack

Take BackboneJS

суббота, 1 июня 13 г.

Page 46: Backbonejs Full Stack

Take BackboneJS

Start development

суббота, 1 июня 13 г.

Page 47: Backbonejs Full Stack

Take BackboneJS

Start development

Understand you need more

суббота, 1 июня 13 г.

Page 48: Backbonejs Full Stack

What missed✓ application structure✓ memory management✓ controllers✓ main application✓ default Collection View

суббота, 1 июня 13 г.

Page 49: Backbonejs Full Stack

ChaplinJShttps://github.com/chaplinjs/

chaplin

суббота, 1 июня 13 г.

Page 50: Backbonejs Full Stack

ChaplinJSRoute Dispatch

ComposeCleanup

Load controller

c.Action

суббота, 1 июня 13 г.

Page 51: Backbonejs Full Stack

ChaplinJSmemory management

✓ composer✓ controller

суббота, 1 июня 13 г.

Page 52: Backbonejs Full Stack

ChaplinJSView

✓ autoRender✓ listen pub/sub✓ render / attach✓ container✓ subviewsсуббота, 1 июня 13 г.

Page 53: Backbonejs Full Stack

ChaplinJSRegions

суббота, 1 июня 13 г.

Page 54: Backbonejs Full Stack

ChaplinJSCollectionView

CollectionViewсуббота, 1 июня 13 г.

Page 56: Backbonejs Full Stack

MarionetteRoute c.Action

Custom prev View dispose code

Insert new View in Region

Dispose prev View

суббота, 1 июня 13 г.

Page 57: Backbonejs Full Stack

MarionetteItemView

✓ render func✓ bind model /

collection✓ event based

methodsсуббота, 1 июня 13 г.

Page 58: Backbonejs Full Stack

MarionetteRegions

суббота, 1 июня 13 г.

Page 59: Backbonejs Full Stack

MarionetteLayout of regions

суббота, 1 июня 13 г.

Page 60: Backbonejs Full Stack

MarionetteApp Router

суббота, 1 июня 13 г.

Page 61: Backbonejs Full Stack

суббота, 1 июня 13 г.