是否有任何客户端JavaScript MVC(微)框架?
我有一个相当复杂的HTML表单,它将受益于MVC模式。
我想一个好的解决方案会提供以下内容:
阿贾克斯,彗星,JSONP以及所有爵士乐都严重矫枉过正。
答案 0 :(得分:71)
Backbone是一个很棒的轻量级框架。试试看: http://backbonejs.org/
答案 1 :(得分:33)
JavaScriptMVC是一个很好的解决方案。一切都是插件方法,您只能选择所需的功能。从2.0开始,它基于jQuery。
在逐步增强您的网站时,由于JMVC只为开发提供了一个中间层,这取决于用户 - 您可以自己做出设计选择。
然而,JavaScriptMVC是最好的通用JavaScriptMVC库,因为它具有强大的基于事件委托的控制器。
事件委托可以让您逃脱必须附加事件处理程序,只需为您的页面创建规则。
最后,JMVC不仅仅是MVC架构。它包含了开发周期的所有部分:
答案 2 :(得分:21)
Spine有一个类似于Backbone的API,但它要小很多。它具有原型继承。
答案 3 :(得分:20)
答案 4 :(得分:14)
确实有:http://www.javascriptmvc.com/
我认为你会发现这足够了!
答案 5 :(得分:14)
我认为这个看起来像你应该看看的东西:http://knockoutjs.com/
(作为一个silverlight / wpf程序员,这个库让我终于开始学习javascript。它基于模型 - 视图 - 视图 - 模型(MVVM)模式,对我来说现在看起来像是一个很好的选择! )
答案 6 :(得分:9)
有流行的Backbone.js
答案 7 :(得分:8)
这三个功能让Ember很高兴使用:
使用绑定来保持两个不同对象之间的属性同步。您只需声明一次绑定,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"
Bindings允许您使用MVC(模型 - 视图 - 控制器)模式构建应用程序,然后轻松地知道数据将始终从一层到另一层正确流动。
计算属性允许您将属性视为属性。 计算属性很有用,因为它们可以使用绑定,就像任何其他属性一样。
Ember使用Handlebars,一个语义模板库。要从JavaScript应用程序中获取数据并将其放入DOM中,请创建一个标记并将其放入HTML中,无论您希望显示哪个值:
<script type="text/x-handlebars">
The President of the United States is {{MyApp.president.fullName}}.
</script>
答案 8 :(得分:8)
答案 9 :(得分:7)
如果您的要求真的简单,您可以编写自己的简单MVC,例如Alex Netkachov。
他的示例是基于dojo构建的(注意:由于缺少dojo.js文件,它们在他的页面上不起作用),但是您可以在普通Javascript中遵循该模式。
答案 10 :(得分:4)
对于你需要的东西来说可能有些过分,但 SproutCore 是一个MVC框架,它看起来不比 JavaScriptMVC 或TrimPath的 Junction 。
不幸的是,这些似乎都不是建立在progressive enhancement的基础上的。
答案 11 :(得分:3)
最近流行的ActionScript MVC框架PureMVC已移植到JavaScript。我还没有机会尝试一下,但我相信这很好。
答案 12 :(得分:3)
请结帐jquery-claypool。
jquery-claypool是一个基于jquery的小型,快速,可扩展的mvc框架,基于我对django,rails,spring等的经验。它非常轻巧,可在客户端和服务器环境中运行。
它为干净的mvc,类别记录,过滤器(aop),控制器的延迟创建,控制反转,配置约定提供了一个路由框架,而不是设计更多。
它没有做任何jquery已经做过的事情,感觉像jquery,并且像一个好的框架一样工作应该:简单。
希望你看看。
答案 13 :(得分:2)
以下列出了人类已知的所有开源JavaScript框架。
http://getopensource.info/explore/javascript/framework/
或者只有MVC框架
http://getopensource.info/explore/javascript/mvc/
披露:我是本网站的开发者。
答案 14 :(得分:2)
试试kitty。它只有1.4KB,它唯一的依赖是EJS。
答案 15 :(得分:2)
2016年更新:Sammy.js似乎被抛弃了。
网站上的文字:
带有类的小型webframework。
答案 16 :(得分:2)
如果你想让事情得到控制并且非常简单,你可能不需要框架,但只需实现自己的mvc模式。 请查看本文:Alex Netkachov在2006年的Model-View-Controller (MVC) with JavaScript。
答案 17 :(得分:2)
答案 18 :(得分:1)
我开发了一个名为MCV的非常简单的Javascript MVC框架。它并不完全符合您的要求,但它可以通过帮助程序轻松扩展。无论如何,它绝对是微型的(1,9kb打包)。
它或多或少像Jamal一样,但我决定推出自己的原因有两个原因:
答案 19 :(得分:1)
只是为了使列表更完整: ActiveJS
答案 20 :(得分:1)
CorMVC,易于理解和开始,基于jquery并且不依赖于任何服务器技术
答案 21 :(得分:1)
我不会称之为 micro -framework,但它确实看起来很有趣:Cappuccino Web Framework
答案 22 :(得分:1)
我赞成了AngularJS(完全披露,我通过角度开发工作以有限的方式参与)并且非常兴奋。我做了一个并排比较,为内部项目提供了一个功能(抱歉没有签收共享它)并在AngularJS和Backbone中实现它。这是一个很棒的练习,最后,我非常倾向于Angular。核心开发人员非常善于回答问题,他们在内置数据绑定,单元/ e2e测试和文档方面做得非常好。它仍处于测试阶段,不久的将来会推出1.0。测试版非常稳定。
有一种范式转换,他们使用的方法与大多数人截然不同。集成您最喜欢的jquery插件需要花费一些精力,但是可行并且已经完成(在github上使用angular-contrib)。
我会说(这对于大多数以js为中心的框架来说都是一个问题),请务必调查如何使您的内容对SEO友好(如果它对您很重要)。自从六月加入角度社区以来,我注意到兴趣在增长,很多人都在发帖说他们看过Backbone和其他人,但他们真的很喜欢他们在Angular看到的东西。
答案 23 :(得分:0)
又一个,轻巧而小巧:http://jqnano.oleksiy.pro/
答案 24 :(得分:0)
Can.js 拥有您需要的一切,重量仅为8 KB。它取自JavaScriptMVC的最佳位,并将其提炼为一个小的,但是带有观察者,小部件,绑定和工作的kickass框架。它与主要框架(jQuery,Dojo Toolkit,MooTools等)兼容。文档非常好,作者也很敏感。绝对值得一看。
答案 25 :(得分:0)
另一个:MooTools-MVC
答案 26 :(得分:0)
答案 27 :(得分:0)
我也要在这里进行管道 - AFrameJS适用于jQuery,MooTools和Prototype。
答案 28 :(得分:0)
Maverick是一个小型的JavaScript MVC框架 - http://maverick.round.ee
答案 29 :(得分:0)
有一个名为“Coherent”的键值绑定JavaScript框架,其灵感来自Apple的Cocoa Bindings。 Apple已经购买了该框架,但http://github.com/trek/coherentjs/tree/master还有一个旧版本。