写一下自己对于Vue和React的心得

0 阅读2分钟

在两家比较有名的上市公司都做过大型的前端项目,分别用React和Vue实现的,也刚好趁着这个机会写一下自己对于两个框架的理解

Vue

Vue在开发模式上确实会比React快很多,官方对于整个生态的支持,开发者不用投入过多的心思在技术选型的内容上,只要通过官方脚手架即可快速搭建高质量的项目。在开发的模式上,Vue的模板逻辑也更适合于初学者,上手难度低。Vue2的optionsAPI对于小的文件维护十分便利,统一了代码格式,不会出现React中千人千面的代码风格。大量的指令在开发过程中确实提供了便利,但是也增加了学习成本。

React

React在经过了多年的迭代,在一些性能相关的问题上已经有了很大的提升。React的类型支持,动态传参等内容都便于了开发者进行开发。基于JS的开发模式让学习成本变低,同时也因为JS的原因,让开发的过程十分灵活,不会有束手束脚的情况。同时也因为JS的原因,会导致千人千面的情况。effect带来的心智负担也确实会对开发过程中的一些情况产生困惑,尤其是业务复杂度提升,产品花里胡哨的时候。

一些偏见

为什么说Vue不适合大型项目

设计思路

主要还是Vue的设计思路导致的,vue2是以大对象的方式进行设计,所有的内容都捆绑在Vue实例上,包括store、api请求、翻译等,这样的好处是使用的时候很方便,想用到哪个内容直接以this. 的方式进行调用即可。

中国有一句古话,功过从来相伴,这样大实例的设计方式确实遍历了开发阶段,但是也影响了后续的维护阶段,在进行项目维护的时候经常会遇到属性不存在、类型提示没有等情况,即使在项目中引进了jsdoc等内容,在处理过程中还是不太方便

类型支持

Vue开发最绕不开的一个吐槽点就是类型支持。在React中可以通过ts的extends等方式快速的支持用到类型的功能,便于二次开发,而由于Vue的历史原因,在vue2的时候,Vue只支持了一些基本的类型,当用户需要进行严格的类型校验时,往往无法得到支持。在Vue3的时候通过defineProps对拓展性确实有了更好的补充,但是由于历史原因,很多库导出的类型是不完全的(这里点一下vant,哈哈哈),这是一个长期的过程。