经过技术选型研究,我们放弃了 React,转向 Vue

2018-12-22 14:39:22 +08:00
 nohup

因为几个项目下来,我们发现前端的应用过于卡顿,甚至还不如上一版本 JQuery Easy UI 做出来。在项目经理的会议主持下,我和前端同学在会议上就React 是否符合我们需求的问题充分交换了意见,最终会议决定放弃 React,转向 Vue。
具体原因如下: 我们应用需要每个 tab 内容显示 1000 个列表条目,每个条目显示一个文本状态和背景颜色,1000 个条目里随机每秒有一个改变文本状态。
之前有一版是用 JQ 的。JQuery 做出来的就初次只卡顿 2s,而 React 作出来每点击一次 button 却要卡的四五秒。经过前端深入对 React 研究之后,他认为这是 React 的缺陷-->无法很好地解决高频率渲染大量组件内容。

为什么无法解决呢?我不是前端,我这里拷贝一下前端的原话:

因为 React 在进行状态更新的时候,会进行判断每一个 listitem 的状态是否有改变。当然一两个组件这样就没啥问题,但是要是有 1000-1500 个小方块同时显示,而且每秒还要更新客户订单量,这样统计就会很卡了。你可以自己试一下,for 循环 1 到 1000,只输出一个文本,都会卡成狗屎,更别说 React 判断过程中不只判断一个 prop 属性呢,他要判断 N 个属性,你要在 1000*N 的判断之后,才进行渲染呢!我一开始就说用 Vue 会比较好,React 在 ERP 有嗯用完全搞不定那么多高频率的渲染需求的。“

而且我也觉得用 React 的大部分都是为了 CRUD 吧?如果像一些实时的高频率的刷新,抱歉,我和前端没看到哪一个大厂用 React 来做,感觉真的卡成狗屎。既然前端觉得 Vue 很 ok,那就让他去试试。

所以,各位认同 React 不适合大数据高频率的论点吗?

58187 次点击
所在节点    程序员
325 条回复
aaahhh123
2018-12-24 09:17:03 +08:00
哎 瞎讨论害人家丢了饭碗 现在又是寒冬,真的好吗?
aaahhh123
2018-12-24 09:17:28 +08:00
@sphawkcn 看楼主的补充回答
lovelybear
2018-12-24 09:20:04 +08:00
其实个人还是比较喜欢 vue 的,React 不太喜欢。
lideshun123
2018-12-24 09:26:09 +08:00
直接用 html+js 撸不就没问题了
pipicat
2018-12-24 09:29:03 +08:00
@aaahhh123 估计这前端话说的太满了。看楼主补充
tohert
2018-12-24 09:30:07 +08:00
上家公司后台程序用 C#写接口,老板说很卡, 要求之后招聘 PY 或者 JAVA 岗位,换成 PY/JAVA
oyosc
2018-12-24 09:38:58 +08:00
感觉项目经理也要被辞退
skyfollow
2018-12-24 09:51:53 +08:00
虽然被辞退了,希望这个事件对前端有一定的好处吧。
这么多讨论,认真看下来,一个一个的实践验证,也是一次不小的提升。
reus
2018-12-24 09:55:00 +08:00
@dawniii vue 也一样的,所有框架都一样的。所有框架最终的目的都是进行一些 dom 操作,怎样使 dom 操作最少,怎样用最小的开销计算出需要进行哪些 dom 操作,框架是用来做这个事情的。更新 800 个元素,那 dom 操作可能就有 800 次,框架还能怎么优化呢?难道 vue 就不需要一个个去更新组件属性?
所以我就说 shouldComponentUpdate 需要根据你的后端数据怎么获取的来实现,如果都是全量数据,那就只能一个个比较,如果是增量数据,你就有办法让它自动化一点。
exonuclease
2018-12-24 10:06:34 +08:00
请上 immutable.js 或者手动实现 shouldComponentUpdate 方法
exonuclease
2018-12-24 10:07:49 +08:00
而且大量列表渲染不是应该用虚拟化技术么
kimown
2018-12-24 10:07:58 +08:00
@DOLLOR

知乎不是各个方面, 一直在走下坡路吗?
buhi
2018-12-24 10:20:28 +08:00
vue 唯一的优点就是适合楼主请的前端这种水平不行的菜鸡
hanangellove
2018-12-24 10:26:09 +08:00
@Justin13
“辞退真的秀,研究原型难道是单纯的开发任务么,leader 死哪去了?
如果开发是号称 react 高手,出这种问题确实不该。
但如果是临时学,临时做,出问题那是非常正常的。
出问题了先辞退开发,真是厉害,谁能保证永不出错?
如果有 leader,开发是 react 新手,leader 有主要责任。
如果有 leader,开发号称高手,,leader,开发 55 开。
如果开发的是 leader,号称高手,这种开了确实应该。
如果只有开发,出错就被开,这公司我不敢去。”

赞同~
MuscleOf2016
2018-12-24 10:41:55 +08:00
服了,这么点事情 就辞退,之前出了生产事故 也没见我们公司辞人,开发的领导尼,都在吃屎吗
zarte
2018-12-24 10:46:21 +08:00
应该是说话太满了下不了台了吧。真是个悲惨的故事。
wangxiaoaer
2018-12-24 10:47:08 +08:00
楼主,为什么你没被辞退? 这个决定是你跟那个前端同学在项目经理主持的会上讨论决定的啊,难道你跟高层有交易?
MoRun
2018-12-24 10:47:12 +08:00
虽然你们的前端确实挺菜的,但是直接辞退怕是有点过分。你们的技术 leader 连前端忽悠你们都分辨不出来,他也有很大的责任
fanhaipeng0403
2018-12-24 10:48:07 +08:00
虽然你们的前端确实挺菜的,但是直接辞退怕是有点过分。你们的技术 leader 连前端忽悠你们都分辨不出来,他也有很大的责任
linxy
2018-12-24 10:48:54 +08:00
着实厉害,这样就把人开了。假设这位前端不是 leader,开不开人不是 leader 说的算吗?是 leader 会是这个技术实力?
虽然前端态度确实不太好,不好交流,但是最多罚个钱就完了的事,居然把人开了。
看傻了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/519999

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX