有人私下做 Vue 和 React 的性能测试然后惊动了两边的维护者

#1

文章排版挺好的 https://engineering.footballradar.com/from-a-react-point-of-vue-comparing-reactjs-to-vuejs-for-dynamic-tabular-data/
不过接着就 React 和 Vue 的人都去 Issue 里贴图片了, 说没优化好没优化好…
https://github.com/footballradar/VueReactPerf/pull/3

但总的看下两边优化之后的性能对比, 应该是有用的.

#2

文章更新了, 现在看去差不多符合预期了, React 部分 scripting 远超 Vue, 但某些场景 render 会小一点, 毕竟有抽象的代价, 整体消耗是大于 Vue 的:

#3

哪个框架性能更好,其实对框架使用者来说意义并没有那么大,甚至根本没有意义,只是对开发者来说是一件稍微有那么点意义。python比java慢很多,ruby又比python慢很多,但是并不妨碍那么多人选择python和ruby。

“React 部分 scripting 远超 Vue”,这个结论并没有什么意义,这是拿显微镜镜放大了几百倍得到的结果。在实际的使用中,基本上不能复现测试的场景。

这个事情正好说明了另一个我一直认为的观点,用好一个工具比整天去比较哪个工具更好更有意义,在优化之前,React和Vue出来的结果都是惨不忍睹的,加了一个shouldComponentUpdate之后这样的优化之后,性能的提升才是我们更应该关心的。

1 Like
#4

这是项目实际需求考量的一个因素, 虽然不是全部因素, 但在大项目当中会是重要因素.

#5

项目越大,越重要的是可组织和可维护性,性能反应越来越不重要了
就我做前端这么多年的经验,所有性能问题都和业务相关了,要么针对某个业务做细调,要么改业务流程

所以,性能也不是我的关注点,我更关注用什么,写什么能让那么多人的产出一致

4 Likes
#6

具体的应用类型?

#7

@lobos @darkty2009 想问问两位大神在使用什么,工作中的架构是怎样的

#8

两年之前,用了几个月angularjs,后来觉得实在太重了,自己写个组件实在太费事了,决定换个框架。当时看了一堆框架,包括React,不过那个时候还不太能接受React的语法,一个朋友给我推荐了Vue,所以就用了Vue。

当时在带一个十来个人的小团队,很大一块业务是做各种管理平台,也没分前端后端,都算是做全栈,但是大部分人前端水平比较差,所以就写了一些组件,让其它人只要关注业务就好了。这个组件库也开源了。

这套用起来还不错,提高了很多开发效率。直到后来发生了一件事,尤雨溪在0.10或者0.11里面做了一些非常大的改变(基本上整个架构重写了),比如取消双向绑定(后来又改回去了),不能透过scrope获取祖父(跨一级节点)组件的值。升级之后,整个组件库都不能用了。当时评估了一下,如果升Vue的版本的话,基本上也是要全部重写一遍了。最大的担心是,全部改一遍之后,会不会在Vue某个升级之后又不能用了。

最后决定不升级,那个版本就那样了。再选其它的框架,重新看了React。自己尝试了一段时间,觉得还行,先把Vue写的那套东西移植到React,就是ReactUI。在写这套组件的时候,因为一些原因,离职了,React也一直没有在那个公司用上。这个组件库也一直以个人项目在维护。

现在的工作业务非常非常庞大,各种框架都有,各种历史遗留问题。好在技术方面比较自由,我接触的业务基本都用React。都快到不用React就不会写代码了:smirk:

4 Likes
#9

看来框架的稳定性和是否提供升级方案也是很重要的参考条件,谢谢写了这么长的答案,很有启发。btw,react 那个组件库不错 :)

#10

在公司项目中使用了 vue 1.0, 比 React 确实要简洁点。模板部分的确更像 html,然而有两个细节不是很爽:

  1. template 部分无需使用 this 引用,写多了有点乱,不好区分是 data 还是 props 抑或者 methods 甚至可以是 computed 属性, 诚然可以团队约束来解决。个人觉得既然不同概念,不同使用方式似乎更合理些,可能丢失些许简洁性吧。
  2. vue 的模板里 v-if 等指令需依附于 html 标签,无法独立使用。
#11

Some great ReactJS tutorials and VueJS tutorials that show how awesome both are!