Angular和Backbone与jQuery的不同之处
What makes Angular and Backbone different from jQuery?
我已经使用JavaScript和jQuery很长一段时间了,我想进一步扩展我的技能,在搜索过程中,我发现了两个流行的名称Angular
和Backbone
,在阅读它们时,我发现它们中有一行是共同的,不知怎的,这似乎也是它们的USP,即
It is designed for developing single-page web applications
这让我很困惑。
-
我不能用JS或jQuery做什么,我需要这些?
-
我已经在单页上创建了web应用程序,用户可以通过异步调用在单页执行CRUD操作,那么为什么对其他库如此重要呢?
作为一个精通JS的中级web开发人员,转移到这两个方面是正确的吗?还是在这之前我应该研究一下其他方面?
请帮忙?
结构。
在大约4年前开始的一个正在进行的项目中,我们使用jQuery构建了前端。我们几乎可以完成所需的一切,创建了几个功能强大的单页应用程序。
随着项目的进展和代码库的增长,我们开始在代码的可维护性方面遇到一些重大问题。我们最终在一个几乎不可能导航的混乱中,每页有数百或数千行JavaScript代码。当然,如果我们更小心的话,这是可以避免的,但当时我们专注于确保后端架构是健壮的。
许多年前,社区了解到代码需要结构才能维护。我们开发了MVC模式、多层应用程序等。但JavaScript在这个领域从来都不是一个大玩家,我们基本上忽略了它
在过去的6个月左右,我们将Angular引入到该项目中,并开始清理项目中的一些混乱。结果是显著的。代码不仅更简单、更容易创建,而且结构更容易实现测试,更容易维护,总体上比以前有了巨大的改进。我们仍然使用jQuery,但现在我们已经被缺乏结构所困扰,对JavaScript应用程序的架构略知一二。Angular及其类似工具为您提供了构建良好应用程序的工具。
当您创建更大规模的web应用程序时,明智的做法是查看Backbone、Angular或Meteor。jQuery支持巧妙的技巧,但它不能帮助您以可维护的方式构建代码。基于jQuery构建的大规模web应用程序需要自己的愿景,即如何将代码划分为不同的层,并承担自己的责任。其他框架提供了更多的支持。
我建议至少去一个图书馆看看。也许您最终不会使用它们,但它将使您在jQuery中的工作方式受益。
好吧,最近有很多关于Angular.js的炒作,尤其是SPAs(单页应用程序)。老实说,大约一个月前,当我的团队决定从Jquery转移到Angular时,我脑海中也有同样的问题。
每当谈到Jquery时,我们首先想到的就是DOM操作。在使用Jquery时,我们总是考虑操纵DOM。显示/隐藏元素,为元素设置动画,从你命名的标签中获取数据。但Angular提供的不仅仅是这些。它为您提供了一种体系结构,一种在前端构建应用程序的方法。
因此,无论何时使用Angular.js,都要改变创建web应用程序的想法(相信我这是值得的)。Angular的大多数结构都使用DependencyInjection的概念,这是维护代码的一种巧妙方法。
Backbone只是一个库,而Angular.js是创建和管理单页应用程序的完整框架
说到Angular.js应该在我们创建大型可扩展应用程序时使用,这是真的。在我的案例中,与我合作的团队中充满了Jquery忍者。在过去的3年里,我们一直在创建一个很棒的应用程序,相信我,我们很难维护和调试成千上万行Jquery。这是我们决定将这个应用程序改造成Angular的主要原因。
请查看其中一些有用的链接。你会有更好的主意。
- http://net.tutsplus.com/tutorials/javascript-ajax/3-reasons-to-choose-angularjs-for-your-next-project/
- "AngularJS中的思考;如果我有jQuery背景
- 带有jquery插件的backbone.js视图
- Backbone listenTo不将jquery函数作为处理程序进行激发
- Backbone.js与jQuery的Lazy加载插件
- 弹出窗口-jQuery Mobile、Backbone.js和Require.js
- 我如何制作一个像Backbone's、 使用jQuery
- 将其绑定在 backbone.js 中的 jQuery 回调中
- Backbone.js 不起作用,而 Underscore、JSON 和 jQuery 可以
- Wrapping Libraries | jQuery vs. Backbone
- 相当于 Jquery/Backbone.js 中的 Dgrid/Store (Dojo 工具包)
- Angular和Backbone与jQuery的不同之处
- Backbone rerender vs jquery remove
- HTTP 状态代码 - Backbone.js 和 Jquery
- 通过 Backbone View 渲染 jQuery 对象
- 如何在 Backbone / Underscore 上应用 jQuery timeago 或 easydate
- 显示使用Spring,Spring Security,Hibernate,jQuery,Backbone,AJAX的We
- 当使用调试器执行JS时,有没有方法跳过jQuery/Backbone/Undercore代码
- 现在使用jQuery-Backbone.Js调用Page方法
- 在JQuery/Backbone中,我如何覆盖每个AJAX请求来添加一个额外的参数?
- 如何使用browerify-shim正确地填充jquery / Backbone
- jQuery / backbone.js -延迟函数调用