我在Asp.net MVC工作了一年,但我从未使用过AngularJs、BackboneJs或KnockoutJs。现在我想在我的项目中使用它,但我有点混淆了MVC是最好的。在某个地方,我读到AngularJs的性能最好,但大多与MVVM框架一起使用,所以请为我提供适当的指导,在Asp.net MVC中,AngularJs、BackboneJs或KnockoutJs中哪个js最好?
提前感谢。
如果您正在构建单页应用程序,则需要一个SPA框架。它应该包括双向数据绑定、客户端路由、页面组成、导航、屏幕状态管理、模块系统、绑定。您可以在Angular和Durandal之间进行选择。它们都提供了非常相似的功能,但在我看来,Durandal是最完整的SPA框架,非常易于使用。Durandal和Angular都可以与Breezejs一起用于构建以数据为中心的应用程序。
检查Durandal、Durandal Auth和HotTowel Angular
如果您正在构建ASP.NET MVC应用程序,那么客户端所需要的就是双向数据绑定,以减少DOM操作。在我的文章中,仅仅将angular用于数据绑定是过分的。Backbone或Knockout是不错的选择,但Angular也可以使用。
这取决于应用程序的性质。既然你没有详细地描述它,这是一个不可能回答的问题。我发现Backbone是最简单的,但我整天都在Angular工作。在我看来,性能更多地取决于编码器而不是框架。
您正在进行繁重的DOM操作吗?我会使用jquery和主干
非常数据驱动的应用程序?角度很好的数据绑定
游戏编程?没有,直接到画布,也许是一个游戏引擎-源
此外,请查看https://stackoverflow.com/questions/5112899/knockout-js-vs-backbone-js
您可以检查以下来源。它真的很完整:
http://www.infoq.com/research/top-javascript-mvc-frameworks
就我个人而言,我选择Angular只是因为它的性能,但有很多原因。。。
我在工作中使用带有ASP.NET MVC/Web API的Knockout,但我在家里玩过Angular,老实说我更喜欢这样。请记住,Knockout解决的问题比Angular解决的问题小得多,后者是一个完整的SPA框架(包含服务、HTML指令等)。要比较苹果与苹果,您应该考虑将Knockout与Durandal结合使用,因为这是一个像Angular这样的全面SPA框架。
根据实际经验,我怀疑Angular比Knockout更容易避免内存泄漏,因为Knockout在订阅可观察性时会隐式地生成引用(通常通过ko.computed),而且由于在不清理的情况下不可逆地接受Knockout订阅,我们很难追踪到这种内存泄漏。对于Angular,我看不出你有同样的问题,因为你没有直接订阅可变变量("可观测性")。相反,该框架完全可以控制应用模型更改,这在最初可能更难掌握,但最终会带来更好的可维护性。
我没有尝试过淘汰赛或主干赛。在Angular中,我使用过ASP.NET MVC。我个人不喜欢使用MVC视图。由于Angular需要POJO
(普通的旧JavaScript对象),所以,我改为WebApi和Angular。老实说,我对Angular非常满意,原因如下:
- DOM模拟是在它们所属的地方完成的
- 双向绑定
- 采用单元测试设计
- 服务是属于它们的
- 设计时考虑到HTML5
- 能够创建HTML标记以满足业务需求(指令)等