是否有JavaScript MVC(微)框架?

nic*_*des 133 javascript forms model-view-controller

是否有任何客户端JavaScript MVC(微)框架?

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

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

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

阿贾克斯,彗星,JSONP和所有爵士乐都是严重的矫枉过正.

Mar*_*eau 71

Backbone是一个很好的轻量级框架.试一试:http: //backbonejs.org/

  • 我很高兴找到了Backbone. (2认同)

Jus*_*yer 33

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

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

但是,JavaScriptMVC是最好的通用JavaScriptMVC库,因为它具有强大的基于事件委托的控制器.

通过事件委派,您可以避免附加事件处理程序,只需为页面创建规则即可.

最后,JMVC不仅仅是MVC架构.它包含了开发周期的所有部分:

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


Kol*_*lja 21

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

  • 它也是用CoffeeScript编写的,并且使用了CoffeeScript的类式 - 这不是一个巨大的胜利,但它有点好. (2认同)

Voj*_*jta 20

AngularJS与jQuery很好地配合使用,可以帮助你很多MVC结构和严格的关注点分离.

完整的测试环境和依赖注入包括......

请查看http://angularjs.org

  • 角度不是微框架:/ (14认同)
  • 角度与微观框架完全相反.这是一头野兽. (4认同)
  • 是的,与其他框架相比,学习曲线也是不成比例的. (2认同)

Fil*_*erg 14

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

我想你会发现这个足够了!


Lar*_*rsi 14

我觉得这个看起来像你应该看看的东西:http://knockoutjs.com/

(作为一个silverlight/wpf程序员,这个库让我终于开始学习javascript.它基于模型 - 视图 - 视图 - 模型(MVVM)模式,对我来说现在看起来像是一个很好的选择!)


Dre*_*eur 9

有流行的Backbone.js


Sam*_*ler 8

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"
Run Code Online (Sandbox Code Playgroud)

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

计算属性

计算属性允许您将属性视为属性.计算属性很有用,因为它们可以使用绑定,就像任何其他属性一样.

自动更新模板

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

<script type="text/x-handlebars">
  The President of the United States is {{MyApp.president.fullName}}.
</script>
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢emberJS,但它不是**"微"**它是**巨大的**因为它是一个扁平的框架 (4认同)
  • 是否有利于以任何方式使用骨干......如果规格在初始阶段不那么明显.. (2认同)

Hus*_*sky 8

Stapes.js

完全披露:我是这个图书馆的作者:)

如果你正在寻找一些非常小的东西(1.5kb缩小/ gzip)看看,并告诉我你是否喜欢它.


sys*_*USE 7

如果您的要求非常简单,您可以像Alex Netkachov那样编写自己的简单MVC .

他的例子是基于dojo构建的(注意:由于缺少dojo.js文件,它们在他的页面上不起作用),但你可以按照普通Javascript中的模式.