AngularJS,Ember.js,Backbone这类新框架与jQuery的重要区别在哪里?

是这样的,想请问下,AngularJS,Ember.js,Backbone这类新框架与jQuery的重要区别在哪里?
最新回答
玩命丕玩心

2024-08-02 08:40:35

AngularJS,Ember.js,Backbone这类新框架与jQuery的区别如下:

1、本质区别

    AngularJS,Ember.js,Backbone这三者是框架,而jQuery是一个库;使用库是指,使用者的代码决定什么时候从库中调用一个特定的方法;使用框架则是,使用者实现了一些回调方法,到了特定的时候框架会去调用这些方法

2、数据绑定的区别

    在jQuery中,常常按照以下方式响应事件并修改视图:

$.ajax({
  url: '/myEndpoint.json',
  success: function ( data, status ) {
    $('ul#log').append('<li>Data Received!</li>');
  }
});

相对于这样一个视图

<ul class="messages" id="log">
</ul>

必须人工手动去引用并更新这个DOM节点,但是在AngularJS中,可以这样做

$http( '/myEndpoint.json' ).then( function ( response ) {
    $scope.log.push( { msg: 'Data Received!' } );
});

视图应该像下面这样

<ul class="messages">
    <li ng-repeat="entry in log">{{ entry.msg }}</li>
</ul>

不管是数据如何修改,视图层也会自动随之发生变化,非常简洁!

3、区别model层

    在jQuery中,DOM类似于一种model,但是在AngularJS等框架中,拥有不同于jQuery中的model层以便可以以任何想要的方式去管理它,它是完全独立于视图之外的。这种方式是有助于进行数据绑定并且可以保持对分离的关注,而且可以具备更好的可测试性。

4、关注点分离

    AngularJS,Ember.js,Backbone这三个框架都是MVC框架,都是基于模型-视图-控制器的;关注分离,视图层显示记录,model层代表数据,你服务层用来执行这些可复用的任务。使用directive来执行dom操作并扩展视图,并将它和controller连接起来,这也就是其他方面提到的有关于增强可测试性的原因

    而jQuery却无法实现

5、依赖注入

    AngularJS,Ember.js,Backbone这三个框架分析代码,找到这些参数,然后将代码中所需要的服务推送给使用者。

    jQuery无法实现。


    jQuery主要是用来操作DOM的,如果单单说jQuery的话就是这样一个功能,它的插件也比较多,大家也都各自专注一个功能,可以说jQuery体系是跟着前端页面从静态到动态崛起的一个产物,他的作用就是消除各浏览器的差异,简化和丰富DOM的API,简单易用。
    而AngularJS、Ember.js、Backbone则是比较新的产物,他们的产生不是为了再页面上实现各种特效,而是为了构建更重量级的webapp,这种app通常只有一个页面,通常拥有丰富的数据和交互,业务逻辑耦合深,跟传统的web页面还是有比较大的差异的。他们通常把数据和逻辑还有展现之类的东西做了分离,可以更方便做出复杂的单页面应用。

梦如南筏囚我终老

2024-08-02 07:36:56

jQuery主要是用来操作DOM的,如果单单说jQuery的话就是这样一个功能,它的插件也比较多,大家也都各自专注一个功能,可以说jQuery体系是跟着前端页面从静态到动态崛起的一个产物,他的作用就是消除各浏览器的差异,简化和丰富DOM的API,简单易用。
而AngularJS、Ember.js、Backbone则是比较新的产物,他们的产生不是为了再页面上实现各种特效,而是为了构建更重量级的webapp,这种app通常只有一个页面,通常拥有丰富的数据和交互,业务逻辑耦合深,跟传统的web页面还是有比较大的差异的。他们通常把数据和逻辑还有展现之类的东西做了分离,可以更方便做出复杂的单页面应用。