Mode:
Duration:
1
Coding works best on desktop or with an external keyboard.
Coding works best on desktop or with an external keyboard.
Counter increments/decrements by a specified step value.
var CounterModel = Backbone.Model.extend({
defaults: { count: 0 },
step: 2,
increment: function() { this.set('count', this.get('count') + this.step); },
decrement: function() { this.set('count', this.get('count') - this.step); },
reset: function() { this.set('count', 0); }
});
var CounterView = Backbone.View.extend({
tagName: 'div',
initialize: function() { this.listenTo(this.model, 'change', this.render); },
render: function() {
this.el.innerHTML = '<h2>Counter: ' + this.model.get('count') + '</h2>' +
'<button id="inc">+</button>' +
'<button id="dec">-</button>' +
'<button id="reset">Reset</button>';
this.delegateEvents({ 'click #inc': 'increment', 'click #dec': 'decrement', 'click #reset': 'reset' });
return this;
},
increment: function() { this.model.increment(); },
decrement: function() { this.model.decrement(); },
reset: function() { this.model.reset(); }
});
var counter = new CounterModel();
var view = new CounterView({ model: counter });
document.body.appendChild(view.render().el);Backbone.js is a lightweight JavaScript MVC framework that provides structure to web applications using Models, Collections, Views, and Events. It helps developers build organized, maintainable SPAs with minimal boilerplate and strong conventions.
Origin & Creator
Created by Jeremy Ashkenas (also creator of Underscore.js and CoffeeScript) and released by DocumentCloud in 2010.
Industrial Note
Backbone is great for small-to-medium-scale web apps, legacy systems, low-dependency environments, and scenarios requiring simple MVC architecture with minimal overhead.