16
BACKBONE.JS Dragos Andronic , TxtFeedback

Backbone.js - Dragos Andronic

Embed Size (px)

DESCRIPTION

Backbone.js - Dragos Andronic, Codecamp Cluj-Napoca http://codecamp-cluj-sept2013.eventbrite.com/

Citation preview

Page 1: Backbone.js - Dragos Andronic

BACKBONE.JS

Dragos Andronic , TxtFeedback

Page 2: Backbone.js - Dragos Andronic

DE CE AI AVEA NEVOIE DE O LIBRARIE JS?

Pentru ca SPA (sau aplicatiile web interactive) sunt greu de tinut sub control

Pentru ca vrei structura, scalabilitate si mentenanta

Page 3: Backbone.js - Dragos Andronic

CUPRINS

Backbone.js – ce este/ce nu este backbone.js

Backbone.js – privire de ansamblu asupra tipurilor oferite

Exemplu

Sfaturi si referinte

Page 4: Backbone.js - Dragos Andronic

CE ESTE VS CE NU ESTE

Backbone = librarie de tipuri ce te ajuta sa iti organizezi codul

Backbone != framework (a se vedea Marionette)

Backbone != Model View Something…

Page 5: Backbone.js - Dragos Andronic

DE CE BACKBONE.JS?

Groveshark

Foursquare

Khan Academy

AirBnb

Trello

LinkedIn Mobile

Page 6: Backbone.js - Dragos Andronic

TIPURI

SERVER

Models

Collections

Views

DOM

Router

REST (JSON)

Page 7: Backbone.js - Dragos Andronic

MODELEapp.MyModel = Backbone.Model.extend({

defaults: {}, id: "", //isNew attributes: {}, //get, set validate: function(attrs, options) {},//invalid event initialize: function() {}, parse: function(response, options) {} }); toJSON

save

Page 8: Backbone.js - Dragos Andronic

COLECTII

fetch

add/remove

push/pop

where, findWhere

sort

var MyCollection = Backbone.Collection.extend({ model: app.MyModel, url: “” });

Page 9: Backbone.js - Dragos Andronic

VIEWS

el, $el

app.MyView = Backbone.View.extend({ tagName: 'div', model: app.MyModel, template: _.template($('#view-template').html()), events: {}, render: function() { this.$el.html(this.template(this.model.toJSON())); }, initialize: functin () {} });

Page 10: Backbone.js - Dragos Andronic

TEMPLATING

Generare elemente DOM

Underscore template <% %> <%= %> <%- %>

Page 11: Backbone.js - Dragos Andronic

ROUTERvar MyRouter= Backbone.Router.extend({ routes: { "help": "help", // #help "search/:query": "search", // #search/kiwis "search/:query/p:page": "search" // #search/kiwis/p7 }, help: function() {}, search: function(query, page) {} });

Page 12: Backbone.js - Dragos Andronic

EXEMPLU

TODOMVC

Page 13: Backbone.js - Dragos Andronic

SFATURI SI REFERINTE

Sfaturi

Default values – folositi o functie

Aveti grija la this (folositi listenTo, events, _.bind si _.bindAll)

Page 15: Backbone.js - Dragos Andronic

INTREBARI SI (POATE) RASPUNSURI

[email protected]

@dandronic

Page 16: Backbone.js - Dragos Andronic

INTREBARI

[email protected]

@dandronic