有关Backbone的小九九

什么是backbone?????

backbone是基于javaScript开发的一种框架,在React和Vue,angular2三分天下的今天,backbone就像是行走在江湖的剑客,不与武林争宠,也许过去也有过决战华山之巅的豪情,但随着新老交替,backbone的确已经有些过时了。只能说,可能说过时有些不妥,毕竟现在还有相关的人员在去维护他,去更新他。或许某一天,维护他的人渐渐离开,他也许就真正的消失于历史的场合之中,就像ActionScript王朝的没落,backbone不是一个王朝,就像金刚狼一样,英雄不朽,但英雄们会死,我们记得的只是英雄这个词,但不是英雄本身,是不是有一点嘲讽的意味。

说了这么题外话,只不过有些有感而发,前端像是一个不停奔流的河,我们颤颤巍巍的跟在那些掌握话语权的前端大牛的身后,拾人牙慧,蝇营狗苟。怕有一天,会完全脱离这个隐形的圈子,怕有一天跟不上这些酷炫框架的脚步,所以时刻保持一种谦卑的态度是十分必要的。

对知识保持谦卑,是进步的重要环节。那些刚愎自负的人已经被时代淘汰,或者正在淘汰着,你看活跃在这个世界上人,那个不是勾着腰匍匐前进。

无知即罪恶,享乐即贪婪。

说了那么多,到底什么是backbone?

我也说不上来什么是backbone,就在我下班和上床睡觉的时间内,我大概浏览了一下backbone是什么,它类似与一种JS接口,它能将一些我们常用的函数打包成一个语句,然后将一个个的语句打包成这个框架自身的属性,我们可以在JS中使用这些属性值。

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

backbone.js的主要组件:
backbone组件

Backbone是个重度依赖患者

Backbone重度依赖Underscore.js。基于RESTful(一个架构样式的网络系统)的约束,它的路由的支持依赖于Backbone.Router,DOM处理依赖于Backbone.View和Jquery的APIs,例如Lo_Dash和Zepto。

backbone的模块
  1. Event:事件驱动模式
  2. Model:数据模型
  3. Collection:模型集合器
  4. Router:路由器
  5. History:开启历史管理
  6. Sync:同步服务器行为
  7. View:视图(含事件行为和渲染页面)
MVC是什么?模块如何实现MVC呢?

MVC是一种框架模式:M:model(模型),V:view(视图),C:controller(控制器).
下图解释backbone的模块是如何实现MVC的:
backbone实现MVC

Events模块是事件模块,其他模块都继承了Events模块,因此都有事件模块的功能。

Model就是模型,Collection是机核,他可以添加多个模型,叫做模型的结合。Model一般对应一条数据,而Collection一般对应多条数据。

View就是视图,View不仅包括视图还包括事件监听,比如说:仕途上会绑定事件回调函数。

model可以直接和view关联操作,model传数据给view,view就可以显示这个数据,一个model最好对应一个view。Collection也可以直接跟view关联操作。

Router的作用就是在一个页面上进行数据的对比。比如:数据从model传给Router,然后Roter通过Hash值取到对应的数据,最后,Router把对应的数据生成到view中,达到一一对应的效果。Router操作hash值,必须通过history来管理。history的设计是这样的:如果支持HTML5,就是用history API,或者监听onhashchange事件。不支持额话,就是用一个定时器来轮询hash值得变化。

对model进行操作时,需要跟服务器进行交互,那么model与服务器进行交互