一.Vue.js
Vue.js是一个轻巧、高性能、可组件化的MVVM库,同时拥有非常容易上手的API;
Vue.js是一个构建数据驱动的Web界面的库。
Vue.js是一套构建用户界面的 渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用。数据驱动+组件化的前端开发。
简而言之:Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。核心是一个响应的数据绑定系统。
二.Angular
1.MVVM(Model)(View)(View-model)
2.模块化(Module)控制器(Contoller)依赖注入:
3.双向数据绑定:界面的操作能实时反映到数据,数据的变更能实时展现到界面。
4.指令(ng-click ng-model ng-href ng-src ng-if…)
5.服务Service($compile $filter $interval $timeout $http…)
其中双向数据绑定的实现使用了 s c o p e 变 量 的 脏 值 检 测 , 使 用 scope变量的脏值检测,使用 scope变量的脏值检测,使用scope. w a t c h ( 视 图 到 模 型 ) , watch(视图到模型), watch(视图到模型),scope. a p p l y ( 模 型 到 视 图 ) 检 测 , 内 部 调 用 的 都 是 d i g e s t , 当 然 也 可 以 直 接 调 用 apply(模型到视图)检测,内部调用的都是digest,当然也可以直接调用 apply(模型到视图)检测,内部调用的都是digest,当然也可以直接调用scope.$digest进行脏检查。值得注意的是当数据变化十分频繁时,脏检测对浏览器性能的消耗将会很大,官方注明的最大检测脏值为2000个数据。
相同点:
都支持指令:内置指令和自定义指令。
都支持过滤器:内置过滤器和自定义过滤器。
都支持双向数据绑定。
都不支持低端浏览器。
不同点:
(1).AngularJS的学习成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比较简单、直观。
(2).在性能上,AngularJS依赖对数据做脏检查,所以Watcher越多越慢。
Vue.js使用基于依赖追踪的观察并且使用异步队列更新。所有的数据都是独立触发的。
对于庞大的应用来说,这个优化差异还是比较明显的。