backbone java_Backbone.js 的最佳应用场景有哪些?

Backbone.js 的适用场景非常广,无论是 Web-Page 还是 Web-App 都可以应用,但最合适的还是大型的 Web-App,对于中小型项目来讲 Backbone.js 的 MVC 结构还是有点臃肿了,用不好很容易 over design。Backbone.js 是非常典型的 MVC 框架,但是相对于传统的 server 端 MVC 来讲还是有一些特殊的地方的。

首先 Backbone 中的几大核心组件 View、Model、Collection、Router 中并没有 Controller。其实 v0.5 以前是有 Backbone.Controller 这个东西的,但由于做的根本不是 C 的事情,这个名字又太具有迷惑性了,后来改名叫做 Backbone.Router。而真正的 C 其实是 Backbone.View,但这个 View 其实是部分的 C(还有一部分在 Backbone.Router 中) + 部分的 V,由于前端的模板功能有限,很多应该在 template 中做的事情不得不被拿到 Backbone.View 中来实现。

其次,由于 MVC 的概念中认为 V 其实是永远不知道用户输入(鼠标、键盘事件等)的,C 是输入和 V 之间的连接,但在浏览器中这点其实是实现不了的,V 就是 HTML,而用户输入是基于 HTML 页面的,所以你可以忽略用户输入,把所有事件都导入到 C 去处理,但不代表 V 不知道这件事情。所以前端的 MVC 多少是对传统的 MVC 模型做了些改变的实现,近些日子更多的人转向 MVVM 就是这个原因。

Backbone.js 的优点:

1. 代码质量比较高,通读一遍还是能学到不少东西的。

2. 只做框架该做的事情,不做高大全的东西。所以很容易和其他的工具或框架整合。比如有人搞了 Bakcbone.js + Knockout.js 的 Knockback.js。

3. 分层的结构很清晰,使得前端工程在扩展性和维护性上都可以进行有效控制。

Backbone.js 缺点:

1. Model 结构比较简单,如 @pw 所述,多对多、但对多的数据模型很难搞,用对象做属性也不行。

2. 内存控制,View 很容易产生 memory leak 的问题,不过这也和代码的质量有关系,近期的更新有一些是针对这方面的。

to @pw:

我觉得 Sync 写的简单并不算缺点,源码里写明了这部分要根据具体业务需求重载掉的,很容易进行扩展。

P.S. 今年下半年更新比较缓慢,目前停留在 0.9.9,坊间传闻是在憋大招,1.0 会有惊喜。

P.S. 豌豆荚 PC 客户端 2.0 全部是使用 Backbone.js 框架开发的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值