有没有JavaScript MVC(微)框架?


Answers

JavaScriptMVC是一个很好的解决方案。 这是一切插件方法,使您只能选择您需要的功能。 从2.0开始,它基于jQuery。

在逐步增强您的网站时,JMVC仅为开发提供了一个中间层 - 这取决于用户,这取决于您自己做出该设计选择。

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

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

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

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

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

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

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

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

Ajax,彗星, JSONP和所有爵士乐都是严重的过度杀伤力。




我认为这个看起来应该是你应该看看的东西: http://knockoutjs.com/ : http://knockoutjs.com/

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




流行的ActionScript MVC框架PureMVC最近被移植到JavaScript。 我还没有机会试用它,但我相信它很好。




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




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




Can.js拥有您需要的一切,仅需8 KB的重量。 它从JavaScriptMVC中取得了最好的成果,并通过观察者,小部件,绑定和作品将其融入一个小的kickass框架。 它与主要框架( jQueryDojo ToolkitMooTools等)兼容。 文档非常好,作者反应迅速。 这绝对值得一看。




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

看看Sammy.js

来自网站的文字:

一个有类的小型网络框架。

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









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




Ember.js

这些是使Ember很高兴使用的三个特点:

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

绑定

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

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

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(模型 - 视图 - 控制器)模式构建您的应用程序,然后轻松地知道数据将始终在层之间正确流动。

计算属性

计算属性使您可以像处理属性一样处理函数。 计算属性很有用,因为它们可以像绑定一样使用,就像任何其他属性一样。

自动更新模板

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

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



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

http://jamal-mvc.com/







如果您的要求非常简单,那么您可以编写自己的简单MVC,如Alex Netkachov所做的那样。

他的例子建立在dojo上(注意:由于缺少dojo.js文件,它们在他的页面上并不适用于我),但是您可以按照纯JavaScript中的模式进行操作。