vue和angular的区别:

相同:

1.数据绑定:vue和angular绑定都可以用{{}}

2.都支持内置指令和自定义指令

3.都支持内置过滤器和自定义过滤器。

 

区别:

1.学习成本和API 设计:vue相比于angular来说更加的简单

angular:学习成本比较高,比如增加了dependency injiction特性。Angular 尽管学习曲线较为陡峭,但却是构建完整复杂应用的好选择。

vue:本身提供的API都比较简单、直观。Vue.js 是轻量级的开发框架,很适合开发小规模灵活的 Web 应用程序;

在 API 与设计两方面上 vue比 angular 简单得多,因此你可以快速地掌握它的全部特性并投入开发。

 

2. 性能上:

angular:依赖对数据做脏检测,所以watcher越来越多;

vue:使用基于依赖追踪的观察,并且使用异步队列更新,所有的数据都是独立触发的。

.vue的双向绑定是基于ES5 的 getter/setter来实现的,而angular而是由自己实现一套模版编译规则,需要进行所谓的“脏”检查,vue则不需要。

因此,vue在性能上更高效,但是代价是对于ie9以下的浏览器无法支持。

 

3.运行速度:vue相当于angular要变得小巧很多,运行速度比angular快.

 

4.指令:vue指令用v-xxx,angular用ng-xxx

angular用的指令是ng-前缀的,而vue是v-

 

5.组件:vue有组件化概念,angular中没有

 

6.数据存放位置: vue中数据放在data对象里面,angular数据绑定在$scope上面。

 

7.挂载数据方式:

angular挂载数据的方法
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope) {
    $scope.list = [{},{},{}];
    $scope.method = function(){
        console.log("angular");
    }
})

vue挂载数据的方法
var V = new Vue({
    el:"#app",
    data:{
        list:[{},{},{}]
    },
    methods:{
        method:function(){
            console.log("vue");
        }
    }
})

可以看出angular所有的数据和方法都是挂载在$scope上,

而vue的数据和方法都是挂载在vue上,只是数据挂载在vue的data,方法挂载在vue的methods上。

 

8.数据绑定
Angular 1 使用双向绑定,
Vue 在不同组件间强制使用单向数据流。这使应用中的数据流更加清晰易懂。

 

10.总结:Vue.js 有更好的性能,并且非常非常容易优化,因为它不使用脏检查。Angular,当 watcher 越来越多时会变得越来越慢,因为作用域内的每一次变化,所有 watcher 都要重新计算。并且,如果一些 watcher 触发另一个更新,脏检查循环(digest cycle)可能要运行多次。 Angular 用户常常要使用深奥的技术,以解决脏检查循环的问题。有时没有简单的办法来优化有大量 watcher 的作用域。Vue.js 则根本没有这个问题,因为它使用基于依赖追踪的观察系统并且异步列队更新,所有的数据变化都是独立地触发,除非它们之间有明确的依赖关系。唯一需要做的优化是在 v-for 上使用 track-by。

 

posted @ 2019-04-25 22:09  D星辰  阅读(8745)  评论(3编辑  收藏  举报