百科狗-知识改变命运!
--

同作为JavaScript MVC框架,Backbone和AngularJS各有什么优缺点

一语惊醒梦中人1年前 (2023-12-20)阅读数 7#综合百科
文章标签数据视图

写了这么多AngularJS代码,可以说我对AngularJS了解比较深入了。Backbone也是一个很热门的JS框架,我通读了一下它的API文档,大概了解了他的运行机制。

Backbone很精巧,很强大。但对比AngularJS,我说说我看到的Backbone的缺点,由于接触时间短,可能会存在误解,见谅。

Backbone的Model把服务器端的数据模型映射到浏览器端,绑定数据验证机制,并与相应的REST操作绑定,这样每个数据模型都变成了独立体,方便REST操作,却限制REST的灵活性。比如我要将10个todo批量标记成已完成,它会发出10个REST请求。

Backbone的Model没有与UI视图数据绑定,而是需要在View中自行操作DOM来更新或读取UI数据,这点很奇怪。AngularJS与此相反,Model直接与UI视图绑定,Model与UI视图的关系,通过directive封装,AngularJS内置的通用directive,就能实现大部分操作了,也就是说,基本不必关心Model与UI视图的关系,直接操作Model就行了,UI视图自动更新。而Model数据验证、与服务器端的数据交互都是非常简单而自由的。

AngularJS的directive,你输入特定数据,他就能输出相应UI视图,这样的directive可以变成了一个html通用组件,比如文章编辑器组件、分页导航组件、madal组件等,在不同应用中可以直接拿来用,减少重复开发。我想,Backbone大概很难实现这样的通用组件。

Backbone的View没有把html与JavaScript解耦,要控制UI视图,实际上就是用JavaScript控制DOM,或者通过第三方模板引擎控制HTML字符串,而这些,都需要程序员在代码中用JavaScript自行实现。

AngularJS不同,写UI视图就是写正常的HTML/CSS,写逻辑控制代码就是用JavaScript操控数据(不是DOM),不同的就是增加了directive,实现DOM与数据的互动,如上所述,directive是通用组件。AngularJS只是定义了一个环境和一个数据与视图交互的机制,并提供了若干通用组件和服务,所以AngularJS开发很简单,很高效,很“原生态”。

虽然我没有真正写过桌面应用程序,但我觉得AngularJS的理念就是把WEB当作应用程序来写——Web App。反观Backbone,对于数据与UI视图的互动并没有大的改进,仅仅提供了数据变更事件通知,它侧重于REST数据交互了,而REST数据交互本来是很容易处理的。

AngularJS和jquery,有什么区别?

1 本质上的区别 : JQuery是继prototype之后又一个优秀的Javascript库 ;AngularJS

是一款优秀的前端JS框架,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。

同作为JavaScript MVC框架,Backbone和AngularJS各有什么优缺点

2 在DOm操作上的区别 : jQuery在添加修改DOM元素,可以根据用户交互

;AngularJS会尽可能减少对DOM的破坏和重构。

3 效率的问题 :,AngularJS中 比如在框架内它就支持单元测试,简化了测试上的麻烦,降低模块间的耦合度;而jquery则重在实现效果,不关注效率问题。

4 jquery目的是在于减少前端人员的做一些特效开发的工作量,只是为了实现效果吗,减少js的代码量;当一个项目的重点是数据展示和执行,而不是分析,此时可能AngularJS就会更胜一筹。

AngularJS 是Web前端开发中的一个 JavaScript 框架,目前在前端中使用率也是非常高的,也是Web前端开发者以动态形式开发时最喜欢的框架之一。如果你是一个前端开发者希望基于AngularJS启动一个项目,你需要筛选众多的工具。为了减少用AngularJS开发的负担,下面源码时代Web前端培训小编为大家介绍20款最新的工具,主要涉及测试、前端开发、IDE编辑器、文本编辑器、优秀库、模块、扩展、代码生成器、网格工具等等。

1.Karma–是一个简单的javascript测试工具,它允许在多个真正的浏览器执行JavaScript代码..提供了完美的测试环境,允许你在真实的浏览器和设备比如手机和平板电脑上测试应用。

2.Protractor –是一款端对端的测试框架。这个Node.js项目建立在WebDriverJS之上。它在真实浏览器上运行测试,与其交互就如任何正常用户使用一样。

3. Jasmine –这款行为驱动测试框架不依赖于浏览器、DOM或者任何JavaScript框架,因此对于任何Node.项目或者任何JavaScript运行的地方都非常适合。

4. Djangular –这是一款可重用的应用,可以提供更好的AngularJS集成。有了此工具的帮助,你可以为每个应用创建 AngularJS内容。

5. Ment.io –这款工具引入了mention部件和宏控件,并不依赖于jQuery。你可以应用ment.io指令作用于任何元素,并且它允许可选择的文本输入。

6. Angular Kickstart –这款工具加速了AngularJS开发,并伴随可扩展的构建系统,简化了开发过程。

7. AngularFire –用此工具,你可以轻松创建 Angular 应用后台。灵活的API,3种数据绑定方式以及快速开发能力使得开发变得轻松。

8. Mocha.js –这是一款运行在node.js和浏览器上的功能丰富的测试框架。允许异步测试,能灵活准确的报告与映射。

9. SublimeText –对于开发者来说最好的一款文本代码编辑器,使得编写代码简单化。比起其他文本编辑器,许多开发者更喜欢用Sublime Text.

10. Restangular –这款工具简化了常见的GET, POST, DELETE, UPDATES请求,使用更简短的代码。对于任何通过 RESTful API 进行数据操作的 Web 应用都是理想化的工具。

11. Generator Angular –这款工具可以帮助你快速的设置项目的默认结构。它能输出让你快速开始app开发的模板。

12. NG-Inspector –这是一个Chrome 和Safari 浏览器扩展,安装成功后会出现先审查面板中,帮助你开发、调试和深入理解 AngularJS 应用。它使得更容易标识和显示Controllers 和Directives中的scope。

13. Angular Seed –这个一个典型的AngularJS web app开发框架,它可以让你在开发环境快速启动angular app。

14. Code Orchestra –这是一个前端开发工具,它允许你所见即所得方式开发代码。一旦你保存修改了的代码,它使用一个特殊的协议自动的显示出来。

15. Videogular –这是一个针对AngularJS的基于HTML5的视频播放库,它使得在你的app中使用视频或其他多媒体更容易。

16. Webstorm –它是一个智能的代码编辑器,支持JavaScript, Node.js, HTML和CSS等等以及它们对应下一代的继任者。它能工作在所有的先进技术下,对大部分开发者来说,使用它是一个很好的选择。

17. Angular GetText –这是超级简单的翻译工具,你只需输入英文文本,标记它需要翻译,它就会翻译。

18. Angular Deckgrid –这是一个轻量级的表格,它没有自己的展现样式,完全依赖于你定义在CSS中的样式。

19. Angularjs UI –这是一个UI组件集合库,它有很多有用的指令来帮你快速的开发Angular应用。它使用指令来代替组件,如:ui-router, ui-map, and ui-calendar。

20. Mean –它是一个使用MongoDB, Node.js, Express和AngularJS apps的简单而完美的模板。它捆绑和配置了一些模块,如: Mongoose 、Passport。

21. Wijmo –这是新一代HTML5/ JavaScript UI控件。大而全面的前端开发工具包,全面支持Angular 2。

22. VS Code(Visual Studio Code)是由微软研发的一款免费、开源的跨平台文本(代码)编辑器。几乎完美的编辑器。

源码时代:http://www.itsource.cn

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)