Backbone 为复杂ECMAScript应用程序提供模型(models)、集合(collections)、视图(views)的结构。其中模型用于绑定键值数据和自定义事件;集合附有可枚举函数的丰富API;视图可以声明事件处理函数,并通过RESTful JSON接口连接到应用程序。

软件简介

当我们开发含有大量Javascript的web应用程序时,首先你需要做的事情之一便是停止向DOM对象附加数据。通过复杂多变的jQuery选择符和回调函数创建ECMAScript应用程序,包括在HTML UI,Javascript逻辑和数据之间保持同步,都不复杂。但对付客户端应用来说,良好的架构通常是有很多益处的。

Backbone将数据呈现为模型, 你可以创建模型、对模型进行验证和销毁,甚至将它保存到服务器。当UI的变化引起模型属性改变时,模型会触发 "change"事件;所有显示模型数据的视图会接收到该事件的通知,继而视图重新渲染。你无需查找DOM来搜索指定 id的元素去手动更新HTML。 — 旦模型改变了,视图便会自动变化。

主要功能

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. 使得ECMAScript程序的模块化更加清晰、明了。

应用场景

最适合的应用场景是单页面应用,并且页面上有大量数据模型,模型之间需要进行复杂的信息沟通。Backbone.js旨在开发单页面Web应用程序,并保持Web应用程序的各个部分(例如多个客户端和服务器)同步。它由jeremy Ashkenas创建,他还因CoffeeScript和Underscore.js而闻名。在处理DOM时,Backbone.js采用了一种命令式编程风格,与声明式编程风格相反(在AngularJS中使用数据属性常见)。试图提供“最小的数据结构(模型和集合)和用户界面(视图和URL)”,为开发人员留下了对增强功能的扩展选择。例如,可以使用Backbone Layout Manager进行嵌套视图,或者使用ReSTbasis进行模型-视图绑定。

参考资料