大家谈谈对框架的挑选 Ember.js、Backbone.js、Knockout.js、Spine.js、Batman.js , Angular.js

2013-01-27 11:14:07 +08:00
 meteor2013
Ember.js、Backbone.js、Knockout.js、Spine.js、Batman.js 和 Angular.js

1. 轻量级的应用选择哪一个会比较好?
2. 那一个比较简单,容易上手
3. 哪一个开发周期最短?
28066 次点击
所在节点    JavaScript
24 条回复
qiao
2013-01-27 11:25:06 +08:00
参看 GitHub 上的这个 repo : https://github.com/addyosmani/todomvc

把使用每个框架写出来的代码对比一下你就应该会有清晰的了解了。
insraq
2013-01-27 11:55:24 +08:00
你的这三个问题都不是能直接给出答案的。

1. Backbone.js和Spine.js很相近,核心差不多,只是API不同。框架很小,没有DOM Binding - 需要自己写。Backbone.js应用广泛,也比较成熟,社区比较大。
2. Knockout.js则是几乎纯粹的DOM Binding,没有一个默认的组织程序的架构。
3. Ember.js Batman.js Angular.js都比较晚一些,吸取了前两类的优点,既提供DOM Binding,又有MVC架构支持。具体的不同在于DOM Binding的机制,看个人喜好。
kenshin
2013-01-27 13:20:18 +08:00
楼主可以看以下两个网址,使用不同框架实现的同一功能。很简单的项目,很容易分辨不同框架之间的特点。
这是我的文章,有什么问题可以在这里问我,我也是初学者,互相交流 :)
http://www.adobe.com/cn/devnet/html5/articles/ember-jquery-phonegap.html
http://www.adobe.com/cn/devnet/html5/articles/angular-jquery-phonegap.html
engin
2013-01-27 13:32:42 +08:00
这个问题还是很难回答,没有“最好”的框架,只有“最”适合自己的。可以大概了解下各个框架之后再做选择,可以参考一篇翻译的文章:
http://blog.geoinker.com/2012/12/29/seven-javascript/
ljbha007
2013-01-27 14:09:47 +08:00
我刚才试了一下 我把backbone.js的development version下下来把所有注释都删掉 一共只有768行

所以用框架只是方便点 其实不用框架也不会多很多劳动量
重要的是代码结构要清晰简洁 能保证随时可以重构某个模块或者功能而不需要通篇都进行大的改动
meteor2013
2013-01-27 14:23:17 +08:00
@ljbha007 我也有同感。

感觉就写一个非常简单的东西的话,直接Jquery。不用MVC框架反而感觉清爽,执行速度也比较快。

是不是用MVC的框架好处在于更好的部署代码,因此只有在做很复杂的东西才会有优势?
meteor2013
2013-01-27 14:45:02 +08:00
而且好像如果用了像CakePHP,RoR 之类的框架之后,就完全没有必要用Javascript的前端框架了。

不知道我说得对不对啊,请大家指正。
starryin
2013-01-27 14:55:42 +08:00
轻量上backbone,很多要自己轮,重量上angular
前端框架解决的问题和后端mvc框架还是有很多不同点的
ljbha007
2013-01-27 15:51:01 +08:00
@meteor2013
前端框架主要是用来做丰富的ajax应用的 可以和ror之类的框架构建的REST API配合
jinwyp
2013-01-28 00:59:18 +08:00
backbone 或 angular 是目前最好选择. 如果做一个登陆和注册页面, 即使是非常复杂的. 还是jQuery合适.

如果要做一个数据交互非常多的, 例如购物车, 或在线应用. 还是backbone比较好. backbone的好处就是易学,功能少, 而且可以理解很多概念. 而且插件非常多.

如果有很多基础例如mvc 可以用google的angular. 较难. 目前建议在等等
其他的都是根据自己对mvc理解情况 资料比较少.
winnie2012
2013-01-28 08:22:04 +08:00
我看很多老外在这几个框架选来选去,AngularJS是最终归宿,我也跟个潮流
yaozhifeng
2013-01-28 09:41:02 +08:00
@jinwyp 怎么会觉得Angular难呢,我看了几个框架,Angular最简单易懂,写出来的东西也好维护。backbone我就没看懂,东西太多。
tss
2013-01-28 10:16:53 +08:00
AngularJS
fiture
2013-01-28 10:33:05 +08:00
真心木有完全去用其中的某一个框架,backbone倒是实践了一下。不知道你们是不是都用过这些东东?
aisensiy
2013-01-28 10:36:37 +08:00
@ljbha007 恩,说的好,我也觉得这样简单的框架好,便于入手,也便于根据自己需求改进。
jinwyp
2013-02-08 14:50:09 +08:00
其实如果用了 AngularJS Ember.js 这种 jQuer都基本不用了. 就是都是dom binding. 数据json变化了, 网页数据自动更新.所以也不用jQuery了.

backbone是更好了组织程序结构. 但没有其他任何dom binding的功能. 所以如果小页面反而没有直接用jQuery好.

其他例如AngularJS Ember.js 这种都是大而全的功能,想要的功能都有了,例如绑定,mvc结构. 属性计算, 路由等 学起来有些难度,其实了解过一些后端框架 概念都差不多
WarWithinMe
2013-02-17 16:43:48 +08:00
@jinwyp 如果要自定义Dom Binding。例如插入数据时候动画显示,这些MVC框架会不会有些不灵活?
lyric
2013-02-19 02:22:24 +08:00
我用spine的原因是它有coffee版而且我可以一晚上读完它的代码。
shawiz
2013-02-19 02:57:08 +08:00
如果能选择,可以直接跳过 backbone 之流,直接上 ember 或 angular.

ember 和 angular 都尝试过,结果发现 ember 比 angular 大很多,而且默认包没有包含 DataStore, 最糟糕的是,不知道是什么原因,我们怎么改也没法运行 ember 最基本的例子. 最后还是选择了 angular.
jinwyp
2013-02-21 13:49:44 +08:00
@WarWithinMe 你说的动画的问题,是目前所有框架都会遇到的问题, angular在下一个版本会支持动画的问题,动画的问题设计到页面切换,数据载入时机. 比较复杂,目前的框架都没有针对动画做处理. backbone本身没有绑定功能. 而且数据变化时也没必要用动画,只有页面和局部切换时才需要动画. 但都要自己处理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/58926

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX