有没有JavaScript MVC(微)框架?

有没有客户端的JavaScript MVC (微)框架?

我有一个相当复杂的HTML表单,它将受益于MVC模式。

我想一个好的解决scheme将提供以下内容:

  • 模型和视图在值更改时更新控制器(观察者模式)
  • 在页面加载时从表单数据填充模型
  • 在模型更改时从模型填充表单

Ajax,彗星, JSONP和所有的爵士乐都是严重的过火。

骨干是一个很好的轻量级框架。 试试看: http : //backbonejs.org/

JavaScriptMVC是一个很好的解决scheme。 这一切都是一个插件的方法,使您只能select您需要的function。 从2.0开始,它基于jQuery。

逐步增强您的网站,这是留给用户的JMVC提供了一个中间层的发展 – 这是由你自己做出的deviseselect。

但是,由于其强大的基于事件委托的控制器,JavaScriptMVC只是最好的通用JavaScriptMVC库。

事件委托可以让你不必附加事件处理程序,只需为你的页面创build规则。

最后,JMVC不仅仅是一个MVC架构。 它涵盖了开发周期的所有部分:

  • 代码生成器
  • selenium和Env.js集成testing
  • 文档引擎
  • 自动Concat +压缩
  • 错误检测和报告

AngularJS和jQuery一起工作良好,并且会在MVC结构和严格的问题分离方面帮助你很多。

完整的testing环境和dependency injection包括…

查看http://angularjs.org

Spine有一个类似于Backbone的API,但它要小得多。 它具有原型inheritance。

确实有: http : //www.javascriptmvc.com/

我想你会发现这足够的!

我认为这一个看起来像你应该检查: http : //knockoutjs.com/

(作为silverlight / wpf程序员,这是使我最终开始学习javascript的库,它基于Model-View-View-Model(MVVM)模式,对我来说现在好像是一个很好的select!

有stream行的Backbone.js

Ember.js

这些是Ember使用的三大特点:

  1. 绑定
  2. 计算属性
  3. 自动更新模板

绑定

使用绑定来保持两个不同对象之间的属性同步。 你只需声明一次绑定,Ember将确保更改在任一方向传播。

以下是如何在两个对象之间创build绑定的方法:

MyApp.president = Ember.Object.create({ name: "Barack Obama" }); MyApp.country = Ember.Object.create({ // Ending a property with 'Binding' tells Ember to // create a binding to the presidentName property. presidentNameBinding: 'MyApp.president.name' }); MyApp.country.get('presidentName'); // "Barack Obama" 

绑定允许您使用MVC(模型 – 视图 – 控制器)模式构build您的应用程序,然后轻松地知道数据将始终正确地在层之间stream动。

计算属性

计算属性允许你像一个属性一样处理一个函数。 计算属性是有用的,因为它们可以像绑定一样工作,就像任何其他属性一样。

自动更新模板

Ember使用Handlebars,一个语义模板库。 要从您的JavaScript应用程序获取数据并将其放入DOM,请创build一个标记并将其放入HTML中,无论您希望显示哪个值:

 <script type="text/x-handlebars"> The President of the United States is {{MyApp.president.fullName}}. </script> 

Stapes.js

充分披露:我是这个图书馆的作者:)

如果你正在寻找一个非常小的东西(1.5kb缩小/ gzipped)看看,并告诉我,如果你喜欢它。

如果你的要求简单,你可以写自己的简单的MVC像Alex Netkachov那样。

他的例子是build立在dojo上的(注意:由于dojo.js文件丢失,他们不能在他的页面上工作),但是你可以按照纯JavaScript模式。

这可能是矫枉过正的,但SproutCore是一个MVC框架,它看起来没有比JavaScriptMVC或TrimPath的Junction更重要。

不幸的是,这些似乎都不是build立在逐步提高的原则之上的。

stream行的ActionScript MVC框架PureMVC最近被移植到JavaScript。 我还没有机会尝试,但我相信这是好的。

请同时结帐jquery-claypool 。

jquery-claypool是一个build立在jquery上的小型,快速,可用的mvc框架,基于我对django,rails,spring等的经验。它非常轻便,可以在客户端和服务器环境中运行。

它提供了一个清洁mvc,类别日志logging,filter(aop),控制器的懒惰创build,控制反转,约定configuration的路由框架,并没有多lessdevise。

它不会做jquery已经做的任何事情,感觉像jquery,并且像一个好的框架应该工作:简单地说。

jQuery的克莱普尔

希望你看看。

贾马尔是我见过的最轻的。 它也基于jQuery(奖金)。 没用过。

http://jamal-mvc.com/

如果你想保持控制和简单,你可能不需要一个框架,但只是实现自己的mvc模式。 只需在2006年查阅这篇文章: 模型 – 视图 – 控制器(MVC)与由Alex Netkachov的JavaScript 。

以下是人类已知的所有开源JavaScript框架列表。

http://getopensource.info/explore/javascript/framework/

或者只有MVC框架

http://getopensource.info/explore/javascript/mvc/

披露:我是这个网站的开发者。

尝试小猫 。 它只有1.4KB,唯一的依赖是EJS。

更新2016年:Sammy.js似乎被放弃。

看看Sammy.js

来自网站的文字:

与类的小型webframework。

  • 萨米的核心是只有16K压缩和5.2K压缩和gzipped
  • 模块 Sammybuild立在一个插件和适配器系统上。 只包含你需要的代码。 将自己的代码提取到可重用的插件中也很容易。
  • 清理整个API被devise为易于理解和阅读。 Sammy试图鼓励良好的封装和应用程序devise。
  • 如果不愉快,真正的发展点是什么? Sammy试图遵循MATZ方法。 它为开发者的幸福而优化。

我不会称之为微型框架,但它确实看起来很有趣: 卡布奇诺Web框架

CorMVC,易于理解和开始,基于jQuery和不依赖于任何服务器技术

我开发了一个叫做MCV的非常简单的Javascript MVC框架。 它并不完全符合你的要求,但是它可以很容易地用佣工来扩展。 无论如何,这绝对是微型(1,9kb包装)。

它或多或less像贾马尔,但我决定推出自己的理由有两个:

  • 删除jQuery的依赖(虽然我大部分时间和jQuery一起使用它)
  • 使其与助手可扩展。 这些与CakePHP行为,组件和帮助类似。

只是为了使列表更完整: ActiveJS

我提出了AngularJS(完全公开,我以一种有限的方式参与了angular度的开发),对此我感到非常兴奋。 我做了一个内部项目的并行比较(对不起没有签名分享),并在AngularJS和Backbone中实现。 这是一个很好的练习,最后我非常倾向于Angular。 核心开发人员擅长回答问题,他们在内置数据绑定,单元/ e2etesting和文档方面做得非常好。 它在1.0版本还在不久的将来。 testing版非常稳定。

有一个范式的转变,他们使用了一个比大多数不同的方法。 整合你最喜欢的jquery插件需要一点努力,但是可行的,已经完成(angular-contrib on github)。

我会说(这对于大多数以js为中心的框架来说是一个问题),请确保调查如何使您的内容对search引擎友好(如果它对您很重要)。 自从六月份joinangular色社区以来,我注意到了这个兴趣越来越大,许多人发帖说他们已经看了Backbone和其他人,但是真的很喜欢他们在Angular看到的东西。

Maverick是一个小型的JavaScript MVC框架 – http://maverick.round.ee

我也会在这里讨论 – AFrameJS与jQuery,MooTools和Prototype一起工作。

另外一个: MooTools-MVC

有一个名为“Coherent”的键值绑定JavaScript框架,它受到了苹果cocoa绑定的启发。 这个框架已经被苹果收购了,但是在http://github.com/trek/coherentjs/tree/master还有一个旧的版本。;

试试这个基于jQuery的javascript MVC框架 。

另外,轻量级和微小的: http : //jqnano.oleksiy.pro/

Can.js拥有您需要的所有内容,重量只有8 KB。 它从JavaScriptMVC中取得了最好的成果,并将其融入到一个小小的kickass框架中,并带有观察者,小工具,装订和作品。 它与主要框架( jQuery , Dojo Toolkit , MooTools等)兼容。 文档是优秀的,作者是响应。 这绝对值得一看。

Interesting Posts