03.08 前端选择vue还是Angular4?

少年啊少年


实践经验表明,Vue在数据量很大的时候不好维护,所以对于大型项目,Angular4显然更适合,但Angular比较复杂,还有面向对象、依赖注入、MVC等思想;如果由后端学过Java的人来做,应该也比较好上手;但是对于只学过前端的人来说,有一堆思想要领悟,上手比较慢;但Vue则相对简单,Vue的好用之处大概就是,用下来你发现,div还是那个div,css还是那个css,js也还是那个js,只是组织的方式和配合他们的工具不同而已。

当前Vue的生态环境相较两年前成熟了很多,相关工具、官方文档和非官方文档都很完善,社区也很活跃。越来越多的大公司已将Vue用于生产环境,github上现在也已经有数以万计的跟Vue有关的开源项目了。因此,对于中小型项目,你完全可以放心地使用Vue来构建。

既然说Vue工具齐全,那我这里简单列举几个常用的工具吧:

  • vue-router:用于配置单页面应用的组件和映射,使用的方式和ui-router类似,支持嵌套路由,正则匹配路由,参数传递,history模式

  • vuex:一个专门为Vue应用设计的 状态管理模型和库。它为应用内的所有组件提供集中式存储服务,其中的规则确保状态只能按预期方式变更

  • element:饿了么出品,基于VUE的组件库,开箱即用。

除了上述之外,还有webpack、axios、node等等工具可以用,且关于Vue的官方和非官方文档都很丰富,完全可以快速上手。

最后,Vue跟微信小程序很像,而且美团还开源了mpvue,意味着你甚至可以直接使用Vue来开发小程序。等于说,你学会了Vue,不仅学会了前端,还学会了微信小程序,一举两得,岂不美哉?

以上就是我拙见,欢迎在评论区留言讨论。


光聊科技


先说说两个我都用过。选择上看实际情况。

项目规模:

大的,复杂的,我推荐angular4,小的,轻的,我推荐vue

人员素质:

人多,推荐angular,更容易工程化,人少推荐vue,适合2-3个人的小团队快速作战,特种作战。

业务需要:

个人觉得,商业应用类的,后台管理类的用angular,如果做个小应用,或者嵌入app等,用vue。

原因分析:

学习曲线绝对的vue会比angular4平滑很多,这个不用解释。量级上vue会更轻。

从框架的整体性上来说,angular4该有的全包了,类似mvc的架构,使从后端java转前端的程序员学习成本大大降低。TypeScript的使用让angular项目的规范性上了一个很高的等级,解决了很多以前框架的问题,也更像java。vue更像react,注重单个页面的开发效率。

社群上,国内用vue的确实更多,vue在国内的发展比较好,人比较多,angular就差些,国外angular好些,vue相对弱势。

vue有vue-cli,angular也有angular-cli,前期简单使用是差不多的,angular-cli搭出来的项目更完整些。

相关的配套,我用的都不多。angular官网有推荐几个ui套件,其他的我没看过好的,而vue有几个国内公司都推了相关的ui套件,例如vux,mintui等,可以选。


林松simon


从Angular2时代开始,前端开发就逐渐开始用用Angular了,当时全国都没什么人敢碰Angular2,多数开发者就靠着啃它源代码中的注释,熟悉了Angular2的用法,并在实用中,还给Angular2团队提交bug。

但是现在,Vue的出现,让很多还没接触Angular多久的开发者开始纠结,这两个到底用哪个好?

用Vue还是用Angular?

因此,这里提供给大家最实用的比较,帮助大家在Vue和Angular之间选择。

先说结论:用 vue + es6。不要考虑Angular,它有2个致命问题,导致它并不适合实用。

我们分几个关键方面来说:

功能上,vue其实和Angular几乎一模一样。

如果只看入门教程,很多人会觉得vue很简单,angular强大而复杂。但我是先学的Angular2,再发现vue的存在,所以我直接深入了vue的文档。

一旦深入就发现,vue其实提供了几乎完全一样的功能,当你要用到这些功能时,vue瞬间就会变得和Angular2~4一样复杂。

原本,vue都是基于es5,视觉上,还会觉得vue和angular4区别挺大。现在vue2.5开始支持typescript,你去看看那个组件编写方式,几乎就和angular4一模一样了。

学习曲线上,vue入门容易,深入下去和angular4几乎一样。

vue最大的成功之一,就在于他的文档由浅入深,不需要立马知道的信息,入门教程暂时不提,从而降低上手门槛。

而angular的教程,一上来就是cli, npm, typescript,一大堆东西砸到你面前,每个东西他都要提一大段,连组件的理念,都要讲半天,教程门槛,一下子就被拉高了。

以游戏打比方,level 1的你进入游戏,vue给你level2的对手,然后level4, 6, 8 逐渐提升。

而angular是,直接拉你到38级的boss面前,告诉你这就是你以后要面对的,并且讲一大堆,你需要做哪些准备。讲完了,让你现场练级,直接打倒这个boss,从1级瞬间跳到38级。

而vue之所以教程能如此简单,因为他基于es5,开头可以不提组件理念,不提typescript,照样能用。Vue的typescript支持,都没放在教程正文提,几乎算是在附录提了下。

因此,入门教程的复杂性,决定了angular的人气无论如何不可能和vue比。

运行速度上,差不多,可以无视区别。

两者的性能,都比 react 和 angular 1.x 好很多,而两者之间,虽然理论有差异,但用户角度很难区别,所以这个不用太多考虑。

运行库尺寸上,vue完胜,angular过于笨重。

但vue现在也有越来越重的趋势。

angular压缩后168kb,真的太笨重了!而vue 早期压缩后不到50kb,但现在vue开始支持typescript之后,有越来越大的趋势,最新版压缩后已经到了89kb,也开始有点重了。

调试和维护上,angular比vue更难调试;

vue比angular更难维护。

angular代码很规范,很好维护和审查,但它在控制台的报错信息太差了,经常看不出到底问题在哪,导致调试非常辛苦,有时候可以说是痛不欲生,尤其是,这个问题不是你可以解决的,除了提交建议,你没有什么好办法。

而vue基于es5的语法实在是很混乱,兼容es5看似让vue好上手,但用起来全是坑。光是那个{}套{},就晕死你。但这个问题,是可以靠使用es6规范回避掉一部分的。

另外,调试这个问题,由于angular用typescript+webpack封装,导致本来就很难调试了,控制台报错再差一点,真的很痛苦。

而vue在开发阶段,其实是可以直接用es6,而不用typescript和webpack的,这意味着,控制台报错将是最准确的原始出错信息,能够最快完成调试工作。这一点,angular是做不到的。

最后,开源库的丰富程度:vue更丰富,但更混乱,尤其是那些es5写的库。

angular4少很多,但更清晰,没有es5~6的跨度问题。

vue的热门库、新开源库,很多陆续转为es6了,但更多库还没转。你有很高概率会面对那些库,而且vue存在从0.x到1.x再到2.x的迁移问题,所以你多少是要受点罪的。

而angular4其实并不热门,提到的人多,去用的人少得可怜,所以开源库也不多。你有很高的概率,需要去找普通js库,然后自己改造成angular4的组件。

这些就是最明显的比较了。

但是我们开发最终放弃了angular,关键原因还是在于:

难调试+笨重。

这两点几乎给angular判了死刑。本人在深知angular4的优点基础上,依然选择扔掉它。然而,es5这个大坑我们是不想再跳了,因此,vue+es6成了最完美的选择:

既享受了类似angular4的功能和规范,又避免了笨重和调试问题。

未来:理想情况是,两者区别会越来越小,最终感受不到区别。不理想情况是,angular被淘汰。

如今,一旦启用typescript,vue和angular的区别就真的很小了。

因此,如果哪天angular的调试信息更加准确有效,而且尺寸降下来(或vue尺寸继续加大),这两者的区别将会小到可以忽略。但如果angular做不到,则早晚要全面输给vue而被淘汰。

从前端的历史发展来看,新框架迅速流行,然后迅速被淘汰,周而复始。因此经验丰富的团队对前端框架都比较避讳,更愿意选择轻量的第三方库,而不选择大而全的框架。

你看react和angular今天很火,但react不是原生Html而是写模版,而angular大而全而笨重,都属于历史长河中很容易流行几年,然后被淘汰的框架类型。虽然他们有大公司支撑,生命周期会更长,但排除大公司因素,这种框架我们还是要尽量避免。

目前,我们判断,angular比较适合:公司内部项目,或面向对象团队转型全栈开发。

这种情况下,团队深知面向对象、代码规范的好处,并且没有es5标准的包袱,直接从typescript入门。虽然,调试的坑依然还在,但其他方面,则好很多。

不然,就像开头的结论那样:vue+es6,是最佳选择。别用es5,其中的苦,用过都知道。


代码院


用什么框架合适还是要根据具体业务。一般来说,vue适合体量小的个人项目或中小型项目;react和angular适合体量大、数据复杂的大中型项目。对学习曲线而言,vue无疑是最平缓的,三大框架中最容易上手。react和angular就学习成本来说远远大于vue。从文档的完整性和可阅读性来说,由于vue是国人写的,文档和操作习惯更加符合国人思维,而react和angular的文档由于是英文,会造成一定的阅读障碍。

跨平台开发使用vue和react比使用angular更多一些,因为这些框架都对跨平台的支持较为友好。虽然vue出来的时间比react和angular晚,但发展到现在使用vue的中小企业非常普遍。

严格来说,vue是mvvm中的v层,是一个类似于jquery的工具库,而angular则是mvvm框架。另外,vue的双向邦定是通过数据劫持结合发布者-订阅者模式的方式来实现的,基于 getter/setter实现数据劫持,angular用的是脏检查机制。因此,普遍认为vue在性能上更优于angular。

vue的文档上写了与其他框架的对比,答主可以参考。链接如下:

https://cn.vuejs.org/v2/guide/comparison.html

另外github上也有三大框架各方面的详细对比,有兴趣的可以找来看看。我的头条号后续也会推送前端三大框架的方方面面的对比这一文章,感兴趣的可关注自取。


程序猿猩球


其实现在vue在学习曲线上已经没什么优势了,我认为vue现在唯一的优势就是中文文档。如果是做单页应用,项目有一定的复杂度,其实最省心的选择是angular,angular的文档是这几个框架中最完备的,而且angular cli是真正能提高开发效率的东西。

angular在代码组织上比较清晰,难上手的地方可能是rxjs的部分。以前vue更接近angularjs;现在,vue和react的相似度更高一点,这俩我感觉没什么明显的孰优孰略,vue比react好的地方是官方提供了状态管理vuex,可以少折腾。

我自己的实践经验,在angular和react之间选的话,我会选angular;在vue和react之间选的话,我会选vue。


geyall


你需要考虑的应该是哪一个开发周期短,人员好招,维护成本低,而不是哪个更优秀。


我的猫叫金针菇


自己写!用jq


沅来是澧


大道至简。


玉漱聆风


我求求你们不要再黑蔡徐坤了好吗?他是我朋友的救命恩人啊,上次我同学出了车祸,成了植物人。医生都放弃了,都说别救了。可那天在病房,电视上在播蔡徐坤打篮球的视频,我朋友硬是从昏迷中醒来把电视给关了!!!


长草颜团子2


所有框架理论上都能做大型应用,只是看框架成熟度完善度,目前vue已经是最大的github前端框架,成熟度和完善度毋庸置疑,这就好比java用的人那么多为什么还被c++的人看不起,因为简单,但就不一定在某些领域java就差了,况且在前端vue甚至没有什么太大的问题,在开发业务上最快的绝对是vue,做架构vue也有很好的扩展

甚至也有人提到不用框架,如果让开发变得简单也是个问题的话,那我无话可说

前端为什么火,你以为前端还能像后台一样衍生出那么多技术吗,大数据,人工智能?无非是页面的效果和业务的呈现,一个前端项目真的需要十个人甚至更多人?3个前端撑死做一个大型项目了,完全可以应对10个+后台,再多都是凑人数,用框架只有一个目的就是简单方便,把东西复杂化的人我一直都很讨厌,不明白是秀还是装逼,目前vue的开发效率甩angular,react几条街,优选vue绝对不是大型和小型项目决定的


分享到:


相關文章: