定义/介绍
Backbone.js是一个重量级JavaScript MVC应用框架,也是JavaScript MVC框架的鼻祖。它通过Models数据模型进行键值绑定及事件处理,通过模型集合起Collections提供一套丰富的API用于枚举功能,通过视图Views来进行时间处理及与现有的Application通过JSON接口进行交互。
当我们开发含有大量Javascript的web应用程序时,首先你需要做的事情之一便是停止向DOM对象附加数据。 通过复杂多变的jQuery选择符和回调函数很容易创建Javascript应用程序,包括在HTML UI,Javascript逻辑和数据之间保持同步,都不复杂。 但对富客户端应用来说,良好的架构通常是有很多益处的。
通过Backbone,你可以将数据呈现为 Models, 你可以对模型进行创建,验证和销毁,以及将它保存到服务器。 任何时候只要UI事件引起模型内的属性变化,模型会触发"change"事件; 所有显示模型数据的 Views 会接收到该事件的通知,继而视图重新渲染。 你无需查找DOM来搜索指定id的元素去手动更新HTML。 — 当模型改变了,视图便会自动变化。
某种意义上说,在用javaScript来创建web项目时,Backbone试图定义一组最小而高效的集合,包括了数据结构(models(模型) 和 collections(集合))和用户接口(views(视图) 和 URLS)。在web开发环境里,到处都是框架(帮你写好了一切),不过这些库需要你的网站在构建的时候符合该框架的样子,风格,默认的行为。但是,Backbone还是作为一个工具,让你可以随心所欲的设计你的网站。
Backbone关注与向用户提供查询和操作数据的有用方法,而不是重建JavaScript对象模型。他是一个库,而不是框架。从嵌入式小部件到大规模应用,它都具有很好的可伸缩性和兼容性。
Backbone比较适合开发单页面应用程序(SPA)。SPA是一种将页面加载到浏览器,然后不需要从服务器刷新整个页面,就可以在客户端完成数据交互的Web应用程序。
Backbone中MVC的机制
Backbone将数据呈现为模型, 你可以创建模型、对模型进行验证和销毁,甚至将它保存到服务器。 当UI的变化引起模型属性改变时,模型会触发"change"事件; 所有显示模型数据的视图会接收到该事件的通知,继而视图重新渲染。 你无需查找DOM来搜索指定id的元素去手动更新HTML。
Backbone的模块
Backbone有一下几个模块
- Events:时间驱动模块
- Model:数据模型
- Collection:模型集合器
- Router:路由器
- History:开启历史管理
- Sync:同步服务器方式
- View:视图
Backbone的使用
根据官网(http://backbonejs.org/ )指示,Backbone重度依赖Underscore.js,轻度依赖jQuery或Zepto、json2.js(对就得IE浏览器的支持)。