同作为JavaScript MVC框架,Backbone和AngularJS各有什么优缺点
2016-01-09 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
Backbone和AngularJS对比:
1、模板引擎不同。
(1)AngularJS
Angular 的模板引擎仅仅是在 HTML 上使用绑定表达式。而绑定表达式又仅仅是两层大括号而已:
<ul>
<li ng-repeat="framework in frameworks"
title="{{framework.description}}">
{{framework.name}}
</li>
</ul>
(2)Backbone 可以和许多第三方模板引擎集成,默认的选择是 Underscore 模板。 因为 Underscore 是 Backbone 的依赖项,比较麻烦的是,Underscore 的模板引擎非常初级,通常不得不把 javascript 混进去,比如说:
<ul>
<% _.each(frameworks, function(framework) { %>
<li title="<%- framework.description %>">
<%- framework.name %>
</li>
<% }); %>
</ul>
2、各自的好处不同:
Angular 为 Web 开发带来了许多创新的概念。双向数据绑定节省了大量的样板代码。比如下面的 jQuery 代码片段:
$('#greet-form input.user-name').on('value', function() {
$('#greet-form div.user-name').text('Hello ' + this.val() + '!');
});
由于 Angular 的双向绑定,你根本就不需要自己写代码。只需要在 HTML 模板里面声明绑定就可以了:
<input ng-model="user.name" type="text" />
Hello {{user.name}}!
总结:Angular 帮助你把构建应用的程序块划分为下面这几种类型:控制器(Controller),指令(Directive),工厂(Factory),过滤器(Filter),服务(Service)和视图(View) (就是模板)。它们被组织为模块形式,之后可以被另一个引用。每种类型有不同的作用。视图处理 UI,控制器处理 UI 背后的逻辑,服务用来处理和后台的通信,并且将共通的有关联的功能组件结合在一起,而指令通过定义新的元素,属性和行为,很容易的构造可重用的组件,以及HTML扩展。
Backbone 轻量,快速,内存占用小。学习曲线也是很平缓的,只需要几个简单的概念就能掌握 (模型/集合, 视图, 路由)。它有很棒的文档,代码简单,注释详细,并且这里还有一个注释版源码,用来解释框架的工作细节。实际上你可以通读整个框架的源码,用不到一个小时去熟悉它。
因为又小又基础,你可以基于 Backbone 打造你自己的框架。一些基于 Backbone 的第三方框架的例子有 Aura, Backbone UI, Chaplin, Geppetto, Marionette, LayoutManager, Thorax, Vertebrae。用 Angular 和 Ember 你一般都要用框架作者给你的选择,有些可能会不适合你的工程需求和个人风格。Angular 2.0 承诺改变这种情况,通过构建更小的独立模块,使你可以选择和组合它们。不过我们还没看到它什么时候才能交付。
1、模板引擎不同。
(1)AngularJS
Angular 的模板引擎仅仅是在 HTML 上使用绑定表达式。而绑定表达式又仅仅是两层大括号而已:
<ul>
<li ng-repeat="framework in frameworks"
title="{{framework.description}}">
{{framework.name}}
</li>
</ul>
(2)Backbone 可以和许多第三方模板引擎集成,默认的选择是 Underscore 模板。 因为 Underscore 是 Backbone 的依赖项,比较麻烦的是,Underscore 的模板引擎非常初级,通常不得不把 javascript 混进去,比如说:
<ul>
<% _.each(frameworks, function(framework) { %>
<li title="<%- framework.description %>">
<%- framework.name %>
</li>
<% }); %>
</ul>
2、各自的好处不同:
Angular 为 Web 开发带来了许多创新的概念。双向数据绑定节省了大量的样板代码。比如下面的 jQuery 代码片段:
$('#greet-form input.user-name').on('value', function() {
$('#greet-form div.user-name').text('Hello ' + this.val() + '!');
});
由于 Angular 的双向绑定,你根本就不需要自己写代码。只需要在 HTML 模板里面声明绑定就可以了:
<input ng-model="user.name" type="text" />
Hello {{user.name}}!
总结:Angular 帮助你把构建应用的程序块划分为下面这几种类型:控制器(Controller),指令(Directive),工厂(Factory),过滤器(Filter),服务(Service)和视图(View) (就是模板)。它们被组织为模块形式,之后可以被另一个引用。每种类型有不同的作用。视图处理 UI,控制器处理 UI 背后的逻辑,服务用来处理和后台的通信,并且将共通的有关联的功能组件结合在一起,而指令通过定义新的元素,属性和行为,很容易的构造可重用的组件,以及HTML扩展。
Backbone 轻量,快速,内存占用小。学习曲线也是很平缓的,只需要几个简单的概念就能掌握 (模型/集合, 视图, 路由)。它有很棒的文档,代码简单,注释详细,并且这里还有一个注释版源码,用来解释框架的工作细节。实际上你可以通读整个框架的源码,用不到一个小时去熟悉它。
因为又小又基础,你可以基于 Backbone 打造你自己的框架。一些基于 Backbone 的第三方框架的例子有 Aura, Backbone UI, Chaplin, Geppetto, Marionette, LayoutManager, Thorax, Vertebrae。用 Angular 和 Ember 你一般都要用框架作者给你的选择,有些可能会不适合你的工程需求和个人风格。Angular 2.0 承诺改变这种情况,通过构建更小的独立模块,使你可以选择和组合它们。不过我们还没看到它什么时候才能交付。
2015-07-14
展开全部
Backbone是一个轻量级MVC框架。
支持单向数据绑定。(Model -> View)。
我们可以定义我们自己的视图、模型和控制器。简化DOM中的事件绑定。对象映射。但因为很轻量,所以灵活性好。通常你可以自由搭配组合各种js库进行定制开发。API非常简单,没几个,基本上学习几个小时就可以轻松上手了。
AngularJS说实话我没亲自用过。不过它是一种MVVM框架。支持双向绑定。(视图<->模型)。使用它的优点是,绝大多数的DOM操作,都可以使用Diretives指令的方式完成,以一种特殊规则的写法,直接写到html当中。然后AugularJS帮你打交道,JS开发人员可以更好的从DOM中解脱出来,专心关注JS的逻辑和业务。 但是AngularJS非常重。而且学习成本高,内容比较多,且复杂。
支持单向数据绑定。(Model -> View)。
我们可以定义我们自己的视图、模型和控制器。简化DOM中的事件绑定。对象映射。但因为很轻量,所以灵活性好。通常你可以自由搭配组合各种js库进行定制开发。API非常简单,没几个,基本上学习几个小时就可以轻松上手了。
AngularJS说实话我没亲自用过。不过它是一种MVVM框架。支持双向绑定。(视图<->模型)。使用它的优点是,绝大多数的DOM操作,都可以使用Diretives指令的方式完成,以一种特殊规则的写法,直接写到html当中。然后AugularJS帮你打交道,JS开发人员可以更好的从DOM中解脱出来,专心关注JS的逻辑和业务。 但是AngularJS非常重。而且学习成本高,内容比较多,且复杂。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询