在公司由一个部门转向另一个部门后,技术栈也由react转换为了vue,在开发的过程中内心中的疑问越来越大,到底是vue的心智负担高还是react的心智负担高;
vue的心智负担高还是react的心智负担高?
这个问题,我想很多人都会回答是react的心智负担更高,因为vue的官网api更详细,更符合html的写法,上手更简单,而react你要去学习 class类,去学习难搞的this指向,去学习高阶组件,学习hooks等等,这一切问题好像都在说明react的上手难度高,心智负担更大,我和所有人一样都是这样想的。
犹大确实是个天才,在犹大的努力下,vue变的越来越好,双向绑定,html语法,proxy数据劫持,composition语法,性能优化在框架内部已经做好,无需开发者担心性能有问题,对所有的开发者来说都是一个极其友好的框架,无论初学者还是中高级工程师。
笔者在使用react前也是一个vue选手,后来又用了2年的react,又转向了vue,而在这期间react的hooks开始变为主流,vue3页开始脱离beta版本进入正式版本的开发,并且由于vue3使用了proxy和composition的设计,使得vue变的更加强大了。
但是当又一次转向了vue阵营后发现部门还是在使用vue2,或者使用兼容策略vue2+composition-api的形式(即在vue2中使用vue3)的语法,此刻心中产生很多疑问,为什么不上vue3呢,是怕ie11兼容问题,还是担心vue3不成熟,会出现线上问题呢,后来同很多人就此事进行过讨论发现在vue比较成熟的公司/部门中,一般都是边缘项目会上vue3,或者根本就不上vue3,而在一些新公司或者没有历史包袱的公司会优先考虑vue3,这背后的逻辑是什么呢?
历史包袱:
上一段提到不上vue3的原因不是因为ie11或者vue3不成熟,而是因为有历史包袱,什么是历史包袱呢?那么在使用vue比较成熟的公司/部门中,他们的基建/SDK等都是vue2来做的,如果一旦升级vue3这些基建/SDK可能就不能复用,可能就需要重构或者开发一版兼容vue3版本的,但是这些基建/SDK都是在公司/部门长期积累下来的,不可能段时间就去完成的,所以这也就能解释了什么是历史包袱,为什么在vue比较成熟的公司/部门恰恰不敢使用vue3,而在没有历史包袱的公司/部门恰恰敢优先考虑vue3的原因吧。
思考:
基于以上笔者的思考,那么究竟是vue3的心智负担高还是react的心智负担高呢,我们可以看到react无论是小版本升级还是fiber架构的升级,对应用层也没有任何影响,积累的基建也并不影响,基本可以无缝衔接使用,而vue2升级 到vue3就是鸟枪换大炮的感觉,从里到外都需要更换,在这一点上笔者个人觉得vue的心智负担会更高一点;
一家之言,理性讨论,勿喷;