简单聊下react和vue之争

react和vue谁更好?

这个问题感觉隔段时间就会被拎出来,然后在知乎掘进等内容区掀起一片骂战,各说各话,甚至逼的vue作者尤大都要出来回应一波。贵圈真乱!我不想参与社区这种无畏的争论,但最近看到还在有人提这种问题,之前做面试官时,也有候选人问过我类似看法,这里就说几句。

老实说我觉得问这个问题的人很无聊,就像那些语言之争,有什么用呢。还是说真的是“同行相轻”。

讨论哪个更好有意义吗?你用react也不代表你的项目就牛逼,你的技术就厉害,用vue也不见得就差。与其讨论这些还不如想着怎么样提高自己,让自己更厉害。另外对大公司的一线开发而言,很多项目在进入公司的时候采用的技术栈就已经定型了,更多的是在维护,想另起炉灶基本不可能。

react和vue我都有用过,16年加入去哪儿的时候接手的第一个项目就是vue写的,17年初开始接触的react。可能是由于公司的缘故,细说起来react用的更多一些,但我对这两种技术没有什么偏见,硬要说的话可能更喜欢react多一点。

我比较喜欢react背后的思想和API的命名风格。

比如dangerouslySetInnerHTML这个api,你在插入html代码的时候是不是能明显引起你的注意,提示你这个操作很危险?
此外像是早期的虚拟dom,后来的timing slicing, suspense,hooks等,感觉这个团队都很有想法

但react也不是没有缺点,像早期遭人诟病的mixin,context(我最讨厌的API),写代码要多写个shouldComponentUpdate方法,否则稍不留心就可能多几次无谓diff, 等等。

vue给我的印象还挺好的,尤其后台系统中处理表单这简直是利器啊。就是子组件能很容易把父组件传入的pros改变,且这种行为并没有得到vue的限制,我不喜欢。本来想多说一下vue的,可自己用的不算多,留待后续吧。

其实两个框架的出发点本就不一样

react从一开始野心就很大,本着“重新定义web开发方式”来的,它背后站着的是facebook的一群顶级工程师,react有这个底气。所以当react首次提出虚拟dom的概念时,大家才意识到还可以这样。

vue的初衷更多的是简化开发人员的压力,提升开发效率。假设你拥有基础的web开发知识html, css, js,你就能利用vue很快上手完成一个项目,且vue文档好太多,这也是为什么很多新人会觉得react入门要比vue难的原因。

但发展到今天,两者工具链,性能, API等都差不了多少,社区也一样繁荣,基于他们都有很多知名的UI库。开发人员只要选择方便业务的,自己喜欢的就好了,何必吵吵。

最后,只有提高自己的技术才是最重要的,其他都是浮云。

-------------本文结束 感谢您的阅读-------------