以前有人说 vue 适合小项目,没找到佐证的东西,最近看到一个统计,统计上万网站发现,使用 vue 的站点更小更快,vue 性能差不多是 react 站点的 2倍。
因此,两个猜想:一是 vue 真的是小项目在使用,二是 vue 真的是简洁。
但是还有一个统计,说 vue 站点的可访问性错误更多,比 react 多了 18%,说明了啥呢?
开发者使用 vue 开发出的东西只讲究快,不太关心规范。
这也是我为什么觉得技术本身没啥好比较,而是区别于开发者的心智模式,具体表现在对技术规范的追求上。
为啥有人拿“vue需要记很多api,学习成本高,react的api少学习成本低”来作为react更好用的依据?
是的,react官方对自己的定位就是个view层的库,使用的时候记个setState方法和几个生命周期基本就行了,react hooks甚至不需要记什么生命周期,useState和useEffect直接开撸。但请你摸着自己的脑子想清楚,实际开发项目的时候你光引入个react就能干活了?
脚手架怎么办?你需要在create-react-app/dva/umi之间选择。
状态管理怎么办?redux/mobx等一众方案眼花缭乱。
还有路由方案、表单方案,以及jsx带来的css in js的各种方案。五花八门,说好听点叫生态丰富,说不好听点这叫群魔乱舞。你好不容易自己在实际开发中组合除了一套用于react项目的架子。但是等哪一天接手别人的项目,一看,人家玩法跟你并不一样,又是尼玛一堆自己之前没用过的各种工具库,这时候作为react粉丝,你可能仍然觉得这不是react的问题,而是人的问题。
所以,即使react自身的概念少,易学,但是站在项目工程角度,选择react造成的综合学习成本并不低。相比vue,初期要学习记忆的东西多了点,但这是因为很多实际业务需要的功能官方提前给你考虑到了,省得你自己挨个造轮子或者去社区挑花眼。最终也就造成了大家用vue写的代码不会差异过大。对于工程而言,这其实是一件好事。
说到这里,我直接亮明观点:大厂有庞大的技术研发团队,他们可以基于react深度定制出符合公司业务的一套项目架子,并且也有较好的执行力将其推广到下面的开发人员,所以大厂喜欢用react是没毛病的;但是对于中小厂,可能前端团队就那么十来个人,有的甚至就不到3个前端,你能保证你们有这个实力和精力去搞这一套?你能保证自己搭出来的这套架子的稳定性和可维护性?就算全都去社区挑现成的,那也存在踩坑的可能性,等你有这功夫人家用vue早就上手写业务代码了,这就是为什么大多数中小公司用脚投票选vue的原因。
当然,vue不是没有自己的缺点,3.0之前我也是挺嫌弃vue的,一方面是ts支持度不好,另一方面是框架设计层面天然对逻辑复用支持度不行。其实react hook之前也有这个毛病,只不过相对而言没那么严重。而且react灵活性高,适合喜欢造轮子喜欢折腾的人,如果项目存在一些比较刁钻的业务逻辑可以优先react。总之,不同的场景下选不同的技术栈,框架而已,前端领域就不要搞饭圈那一套了。