Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular.js Backbone.js和其他MV*模式的js库?_Javascript_Web Applications_Backbone.js_Frameworks_Knockout.js - Fatal编程技术网

Javascript Angular.js Backbone.js和其他MV*模式的js库?

Javascript Angular.js Backbone.js和其他MV*模式的js库?,javascript,web-applications,backbone.js,frameworks,knockout.js,Javascript,Web Applications,Backbone.js,Frameworks,Knockout.js,我对web应用程序非常熟悉,尤其是对这种MV*模式。我们正在开发一个web应用程序,我们正在考虑脱离jQuery,而不是完全脱离jQuery,但我们正在尝试实现一种支持MVC、MVVM或MVP的客户端语言。基本上是将视图和模型分开的东西。我不熟悉这种MV*模式 它基本上列出了(几乎!)所有支持这种MV*模式的客户端语言/框架,访问之后我真的很困惑。因为根据这个网站 归根结底,Ember.js是唯一具有 我想要的一切。我最近移植了一个相对较小的Backbone.js 应用程序转到Ember.js,

我对web应用程序非常熟悉,尤其是对这种
MV*
模式。我们正在开发一个web应用程序,我们正在考虑脱离jQuery,而不是完全脱离jQuery,但我们正在尝试实现一种支持MVC、MVVM或MVP的客户端语言。基本上是将视图和模型分开的东西。我不熟悉这种
MV*
模式

它基本上列出了(几乎!)所有支持这种
MV*
模式的客户端语言/框架,访问之后我真的很困惑。因为根据这个网站

归根结底,Ember.js是唯一具有 我想要的一切。我最近移植了一个相对较小的Backbone.js 应用程序转到Ember.js,尽管性能很小 对于这些问题,我对生成的代码库非常满意。存在 在Yehuda Katz的支持下,Ember.js周围的社区也很受欢迎 太神了这绝对是值得注意的框架

但这样,我发现,这让我觉得角度更好,而再次这样,这让我认为这可能是我所寻找的

更糟糕的是,测试结果完全不同。 这里

Backbone clear winner

主干网再次获胜

angular winner获得的数据越少,获得的淘汰率越高

主干网再次出现

不可能像网站上提到的那样成为余烬

所以,基本上这一切完全让我困惑,我无法决定我应该以网络的名义学习什么,我应该在网站上实现什么。在测试中,
Backbone
显然很突出,但我听说过很多关于
knockout
,但是我提到的那些所谓的链接是关于
角度的
?我知道这可能取决于我目前正在开发的应用程序,但我想从更广泛的角度来看,什么不仅对这个项目有用,而且对更长期的项目有用?在哪种情况下,您更喜欢哪种框架?或者我应该把它们都学一遍吗?(jk,在一个合理的时间内真的做不到。)

为了让事情变得更糟,我听说了,并说

Dart的目标是“最终取代JavaScript作为语言” 在开放式web平台上进行web开发的franca。”

那么,如果js将被取代,为什么我还要考虑学习这些js库/框架呢


所以,基本上,一切都搞砸了,我完全糊涂了?有谁能帮我决定吗?

首先,这个问题真的没有“好”的答案。如果你问MVC库的创建者:p 也就是说,我建议您开始阅读中的示例,这样您就可以了解一个简单的TO-DO web应用程序需要多少代码,以及它有多复杂。然后自己决定你愿意做什么。 我个人的推荐是中坚力量。此外,还有一些互补的库,可以做(几乎)神奇的事情,例如


祝你好运

可能没有客观的答案,但这是我的2美分:

主干网通常会导致更大的代码库,更难维护。与您链接中的轶事类似,我曾参与过一个项目,其中代码从2500行主干代码缩减到600行角代码。淘汰可能会产生同样小的(好的)结果。我的同事们已经从“脊梁骨”转移到了“淘汰赛”,之后他们更开心了

主干网的优点是它非常轻量级,并为您提供了更多的结构选择。这也意味着您可以进行更多的性能调整,因此可以更快。这些相同的方面也是它的缺点:你需要自己构造东西,这意味着:更多的代码,更复杂,可能还有更多的bug

关于您提到的测试:它们几乎不客观,因为它们强调一个非常特殊的用例。而且,它们是由《脊梁》的作者本人发布的,所以很明显,它们很好地展示了脊梁。对于普通UI,无论您选择3个(主干、角度、淘汰)中的哪一个,性能都不应该是问题。Angular需要注意的一点是:如果您想在页面上动态显示2000多个元素,这可能会有问题(请参见Angular的创建者自己的答案:)


关于Dart:它的目标是成为一种语言,而不仅仅是一种语言中的MV*框架。这是一个完全不同的野兽,如果你只是需要一个MV*框架,Dart将是杀伤力过大。此外,Dart还很年轻,大多数浏览器都不支持它。

任何人都可以创建一种语言来取代另一种语言。仅仅因为它来自谷歌并不意味着这会发生。dart或任何其他语言都不太可能取代javascript。我发现Angular.js与Backbone.js框架比较的文章非常好,也是最近的一篇。真值得一读!它指出了许多我以前没有意识到的有趣的事情。@Tom:那是一篇很有前途的文章,我似乎有这样的印象,
angular
更好,至少没有太多的锅炉代码“你不能在一个页面上向一个人显示超过2000条信息。除此之外,任何东西都是非常糟糕的UI,人类无论如何都无法处理它。“这是一个正确的说法。@MartinS当dart编译为js时,您不需要浏览器本机支持它:)