yaoningvital / blog

my blog
31 stars 4 forks source link

Vue和AngularJS(Angular 1)的比较 #157

Open yaoningvital opened 5 years ago

yaoningvital commented 5 years ago
  Vue AngularJS(Angular 1)
Complexity

复杂性
Vue比AngularJS要容易得多,不管是在API方面还是在设计方面。一般只要学习不到一天的时间,就可以构建一个不是那么简单的应用。这一点AngularJS是做不到的。
Flexibility and Modularity

灵活性和模块化
Vue是一个更加灵活和模块化的解决方案。这一点让它更适用于各种类别的项目。

这也是为什么我们为Vue的快速开发提供了一个完整的系统。Vue CLI的目标是成为Vue的生态系统的标准工具基线。它利用合理的默认参数允许各种构建工具在一起平滑工作,所以你可以专注于写你的应用程序,而不是花几个小时纠结于各种配置参数如何设置。同时,为了应对特殊需求,它也允许对每一个工具进行参数的配置。
AngularJS在应用的结构方面有更多规定。
data binding one-way data flow between components
组件间实行单向数据流,这使得在应用中更容易对数据流进行推理。
two-way binding between scopes

双向数据绑定
directives vs components 在Vue中,对components和directives有更清晰的区分。directives仅仅包含封装DOM的操作。而components是自包含的单元,有自己的UI和数据逻辑。 在AngularJS中,directives可以做任何事情,而components只是一种特别的指令(directive)。
runtime performance Vue拥有更好的性能,而且容易优化多了,这是因为Vue没有使用脏检查(dirty checking)。Vue中不存在AngularJS中的问题,因为Vue中使用的是一个运用了异步队列技术的透明的依赖跟踪观察系统,所有的变化触发都是独立的,除非他们之间有明确的依赖关系。 在AngularJS中,如果有多个watcher时,性能就会变得很慢 。因为每一次,只要区域中任何一点东西发生变化,所有这些watcher都需要被重新计算。同样的,当一些watcher触发了另外的更新时,为了稳定平衡,循环需要运行很多次。AngularJS的用户通常不得不求助于深奥的技术去绕开这个循环(digest cycle),在一些方案中,包含很多watcher是没有办法进行优化的。