Backbone 为复杂JavaScript应用程序提供模型(models)、集合(collections)、视图(vIEws)的结构。其中模型用于绑定键值数据和 自定义事件;集合附有可枚举函数的丰富API; 视图可以声明事件处理函数,并通过RESTful JSON接口连接到应用程序。
当我们开发含有大量Javascript的web应用程序时,首先你需要做的事情之一便是停止向DOM对象附加数 据。 通过复杂多变的
jQuery选择符和回调函数创建Javascript应用程序,包括在HTML UI,Javascript逻辑和数据之间保持同步,都不复杂。 但对富客户端应用来说,良好的架构通常是有很多益处的。
Backbone将数据呈现为模型, 你可以创建模型、对模型进行验证和销毁,甚至将它保存到服务器。 当UI的变化引起模型属性改变时,模型会触发
"change"事件; 所有显示模型数据的视图会接收到该事件的通知,继而视图重新渲染。 你无需查找DOM来搜索指定
id的元素去手动更新HTML。 &m
Dash; 当模型改变了,视图便会自动变化。
backbone.js提供了一套web开发的框架,通过Models进行key-value绑定及custom事 件处理,通过Collections提供一套丰富的API用于枚举功能,通过Views来进行事件处理及与现有的Application通过 RESTful JSON接口进行交互.它是基于jquery和
Underscore的一个js框架。
主要组成:
1.model:创建数据,进行数据验证,销毁或者保存到服务器上
2.collection:可以增加元素,删除元素,获取长度,排序,比较等一系列工具方法,说白了就是一个保存 models的集合类
3.view:绑定html模板,绑定界面元素的事件,初始的渲染,模型值改变后的重新渲染和界面元素的销毁等
优势:
1. 将数据和界面很好的分离开来。
2. 将事件的绑定很好的剥离出来,便于管理和迭代。
3. 使得Javascript程序的模块化更加清晰、明了。
应用场景:
最适合的应用场景是单页面应用,并且页面上有大量数据模型,模型之间需要进行复杂的信息沟通。
示例代码
var object = {};
_.extend(object, Backbone.Events);
object.on("alert", Function(msg) {
alert("Triggered " + msg);
});
object.trigger("alert", "an event");