angular
angular一般指 angular2 及以上版本。2010年9月,Google 发布首次angular,即angular1版本。2016年10月 Google 又发布了angular2版本,但是2版本与1版本有非常大的区别,几乎是全部重写,且不向前兼容,更像是一个全新的框架。所以,将angular1改名叫angularJs,而angular特指angular2+。
vue
于 2014 年 2 月首次由 Google 前员工尤雨溪发布。凭借较低的上手难度、良好的性能,成为2016 年发展最为迅速的 JS 框架之一,特别是国内的增长及其迅速。
框架对比
1、体积和性能
相较于vue,angular显得比较臃肿,比如一个包含了 Vuex + Vue Router 的 Vue 项目 (gzip 之后 30kB) ,而 angular-cli 生成的默认项目尺寸 (~65KB) 还是要小得多。
在渲染性能上,这两个框架都很快,性能上几乎没有差别。
2、开发效率
都提供了各自的脚手架工具,帮助提高从开发到构建打包的整套过程,另外均可以基于组件化开发,编写可复用的组件,大大较少重复性的工作。但angular凭借 Typescript 本身比 JavaScript 更加工程化的优势,在都是团队开发的情况下,angular会更具优势。
3、灵活性
Vue 相比于 Angular 更加灵活,可以按照不同的需要去组织项目的应用代码。比如,甚至可以直接像引用jquery那样在HTML中引用vue,然后仅仅当成一个前端的模板引擎来用。
4、可维护性
我理解的可维护性包括两个层次,一是代码的可读性,二是可重构性。同样是因为对TS(能提供静态类型检查)的支持不够全面,使得vue在这两个层次都有些不足。vue作者本人也承认vue在TS 的支持上还有所不足,在3.0版本中将会有所改进。
5、es6支持
es6是新一代的javascript标准,对JavaScript进行了大量的改进,使用es6开发已是基本需求。虽然有部分十分老旧的浏览器不支持es6,但是可以利用现代开发工具将es6编译成es5。在对es6的支持上两者都做得很好,(TS本身就是es6的超集)
6、学习曲线
针对前端而言,angular的学习曲线相对较大,vue学习起来更容易一些。不过对java和c的使用者而言,angular的静态检查、依赖注入的特性,以及面向对象的编程风格,使得angular都要更亲切一些。
7、使用热度
在使用热度上,vue具有更大优势,主要原因是更受数量庞大的中国开发者欢迎。较低的上手难度,易懂的开发文档,以及国人主导开发的光环,都使得vue更为流行。但最近6个月似乎情况有所变化:
截止到5月12号的npm下载数量.webp
总结
相较于vue,angular的优点:
1、开发效率更高
2、可维护性可强
3、对java和c使用者更友好
缺点:
1、体积大
2、灵活性差,不能随心所欲的选择使用方式
3、学习曲线陡峭
4、使用热度不及vue
框架选择
最终选择 angular 最为开发框架,除了angular本身的优点以外,其余理由如下:
1、虽然其体积相对较大,但并没有打得非常过分。此外在开发和构建工程中,可以使用惰性模块加载和摇树优化,可以使首页加载的资源较少,以及在AOT编译模式下,网络方面的损耗时间可以在渲染阶段进行一定弥补。最后本项目主要在内网使用的情况下,带来的网络延迟并不明显
2、angular使用方式不如vue灵活,但是在本项目中并不需要很刁钻的使用方式
3、虽然本身上手难度更大,但我有过angular独立且完整的开发经验,对vue反而更陌生一些。
4、使用热度对项目本身的影响可能有两个,一是框架bug的解决情况,二是开发人员的招聘会相对困难一些。针对第一点,热度低只是相对的,在全球如此大的开发人群基数下,框架早已趋于稳定,且有专门的团队在维护。针对第二点,大多数的前端招聘上都有一句话 “掌握react \ angular \ vue” ,也从侧面暗示了其实三大框架只要学会一个,短时间内掌握上手其他两个都不是较大的困难。
更多前端开发知识,请查阅 HTML中文网 !!
以上就是angular和vue的区别是什么?的详细内容,更多请关注易知道|edz.cc其它相关文章!