JavaScript 常见的 JavaScript MVC 框架

kevinhua · 2012年09月15日 · 最后由 sqsy 回复于 2016年08月27日 · 5255 次阅读

翻译比较粗糙,原汁原味的英文请参考:The Top 12 Javascript MVC Frameworks Reviewed

在过去的几个月里,我一直在搜寻完美的 JavaScript MVC 框架。我希望这个框架抽象和各项特性都比较合理。最终我筛选出了一些框架,下面是对每个框架的简明扼要的概括。在最后,我会告诉你我自己的最终决策。

特别地,下面四个特性对于我来说非常重要:

  • 界面绑定 (UI Bindings) - 不仅是模板层的绑定,我希望构成基础的模型发生改变时,可以自动更新视图层 (即模型层和视图层的绑定)。
  • 视图排版 (Composed Views) - 与所有软件开发者一样,我享受创建模块化、可复用的代码。基于这个原因,在编写界面时,我希望可以对视图进行排版 (最好在模板层面)。应该提供丰富的视图层次结构。一个很好的例子就是可以复用的分页 Widget。
  • 页面展现层 (Web Presentation Layer) - 我们是在编写网页应用,我希望框架提供原生 - 样式的 Widgets。没有理由每个框架都创建自己的布局管理器。HTML 和 CSS 已经足够,框架必须围绕这一概念。
  • 兼容其它 (Plays Nicely With Others) - 我们需要面对这一点,jQuery 令人震惊。我不希望某个框架集成 jQuery 的一个子集,我希望框架推荐使用 jQuery 本身。

竞争者 (The Contenders)

下表是支持上述 4 个特性的 JavaScript MVC 框架:

看上去最美好的 Ember.js 依赖 jquery, 相对来说 Knockout.js 干净很多啊

我的基本原则是,

  1. Data bindings 数据/界面绑定
  2. Compatibility 兼容其他
  3. Extensibility 可扩充性
  4. No direct DOM manipulations 不直接对 DOM 操作

最后的选择是 Angularjs。Angular 是支持视图排版的,这里原文有误

#2 楼 @knwang “Angular 是支持视图排版的”,这个能详细的讲解下吗?

Angular 的 composed view 是用 Directives 来实现的。

http://docs.angularjs.org/guide/directive

需要 登录 后方可回复, 如果你还没有账号请 注册新账号