angular和vue区别
angular和vue区别:1、体积和性能不同;2、开发效率不同;3、灵活性不同;4、可维护性;5、学习成本不同;6、指令不同;7、框架不同;8、双向数据绑定实现不同;9、组件不同;10、数据存放位置不同。
1、体积和性能不同
vue占用空间更小,比如一个包含了 Vuex + Vue Router 的 Vue 项目 (gzip 之后 30kB) ,比angular-cli 生成的默认项目尺寸 (~65KB) 还是要小得多。vue比angular更轻量, 性能上更高效。
2、开发效率不同
二者都提供了各自的脚手架工具,帮助提高从开发到构建打包的整套过程,另外均可以基于组件化开发,编写可复用的组件,大大较少重复性的工作。但angular凭借 Typescript 本身比 JavaScript 更加工程化的优势,在都是团队开发的情况下,angular会更具优势。
3、灵活性不同
Vue 相比于 Angular 更加灵活,可以按照不同的需要去组织项目的应用代码。比如,甚至可以直接像引用jquery那样在HTML中引用vue,然后仅仅当成一个前端的模板引擎来用。
4、可维护性
可维护性包括两个层次,一是代码的可读性,二是可重构性。同样是因为对TS(能提供静态类型检查)的支持不够全面,使得vue在这两个层次都有些不足。vue作者本人也承认vue在TS 的支持上还有所不足,在3.0版本中将会有所改进。
5、学习成本不同
angular:angular的上手难度较高,AngularJS的学习成本高,比如增加了Dependency Injection特性
vue:vue简单易学,Vue.js本身提供的API都比较简单、直观。
6、指令不同
angular:angular的指令都是ng-xxx。
vue:vueJS的指令都是v-xxx。
7、框架不同
angular:angular是mvvm框架
vue:vue是一个渐进式的框架, 相当于view层。
8、双向数据绑定实现不同
这两个框架均支持双向数据绑定,但与 Vue.js 相比,Angular 的双向绑定更加复杂。Vue 中的双向数据绑定非常简单,而在 Angular 中,数据绑定更加简单。
9、组件不同
vue有组件化概念,angular中没有。
10、数据存放位置不同
vue中数据放在data对象里面,angular数据绑定在$scope上面。
拓展阅读
angular的特点
- 数据的双向绑定:这可能是其最激动人心的特性,view层的数据和model层的数据是双向绑定的,其中之一发生更改,另一方会随之变化,这不用你写任何代码!
- 代码模块化:每个模块的代码独立拥有自己的作用域,model,controller等。
- 强大的directive:可以将很多功能封装成HTML的tag,属性或者注释等,这大大美化了HTML的结构,增强了可阅读性。
- 依赖注入:依赖注入(Dependency Injection,简称DI)是一种设计模式, 指某个对象依赖的其他对象无需手工创建,只需要“吼一嗓子”,则此对象在创建时,其依赖的对象由框架来自动创建并注入进来,其实就是最少知识法则;模块中所有的service和provider两类对象,都可以根据形参名称实现DI。将这种后端语言的设计模式赋予前端代码,这意味着前端的代码可以提高重用性和灵活性,未来的模式可能将大量操作放在客户端,服务端只提供数据来源和其他客户端无法完成的操作。
- 测试驱动开发:angularjs一开始就以此为目标,使用angular开发的应用可以很容易地进行单元测试和端对端测试,这解决了传统的js代码难以测试和维护的缺陷。
- 采用MVC模型:Angular遵循软件工程的MVC模式,并鼓励展现,数据,和逻辑组件之间的松耦合.通过依赖注入(dependency injection),Angular为客户端的Web应用带来了传统服务端的服务,例如独立于视图的控制。 因此,后端减少了许多负担,产生了更轻的Web应用。