经过技术选型研究,我们放弃了 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 不适合大数据高频率的论点吗?

56404 次点击
所在节点    程序员
325 条回复
codermagefox
2018-12-22 15:14:36 +08:00
@nohup #20 那么请问一下,不能放源码能不能放源码运行时的 perfermance?这个总不是机密吧?我想看看,如果真是个框架缺陷,我也好好学习一下
nohup
2018-12-22 15:16:59 +08:00
@codermagefox 什么是运行时 performance ? js 没有这个东西的吧
codermagefox
2018-12-22 15:17:46 +08:00
@nohup #22 ChromeDevTool-> Performance
nohup
2018-12-22 15:20:58 +08:00
@codermagefox 中国人要用中文。好的,我稍后 append 一下
hlwjia
2018-12-22 15:23:10 +08:00
“中国人要用中文。好的,我稍后 append 一下”

莫名的喜感
codermagefox
2018-12-22 15:25:01 +08:00
@nohup #22 而且你们前端总结出来的那个结论,我也觉得是欠妥的.1000*3 的 insert 数量是不可能卡 5 秒的.

卡 5 秒只有可能是 O(n³)的复杂度,也就是所有 DOM 节点全部走 insert 完全没有走 domdiff

效果和你们前端做循环的效果是一样的

循环输出 DOM 的实际复杂度不是 3000,而是对比 10 亿次
yolio2003
2018-12-22 15:27:03 +08:00
react 最初抄袭了些概念,引入各种新东西,完全不能用的时候就直接火了。
后面抄了 immutable 来,社区又慢慢补了一些看不下去的特性,最后发现还是基本不能用

最后终于想设计一个 fiber ,结果做了几年,明年 fiber 没出来之前还是不能用的。
yadgen
2018-12-22 15:30:22 +08:00
前端能卡 4-5 秒,你们前端可以换人了。
项目经理没有主见,估计也是听听你们的意见,感觉似乎是那么一回事儿,就定夺,也可以更换了。
Kyle18Tang
2018-12-22 15:30:37 +08:00
@hlwjia 哈哈哈,我也笑了。而且 chrome 里本来也是英文。。。
yadgen
2018-12-22 15:32:13 +08:00
追加一点,可以写个 Demo,从没见过有人贴项目代码。
ugu
2018-12-22 15:32:48 +08:00
人不行哦,不赖框架
yadgen
2018-12-22 15:33:10 +08:00
@hlwjia 我觉得这人跟开发似乎没什么关联,只是个理论伸手党罢了。
chinvo
2018-12-22 15:33:13 +08:00
典型技术不行怪框架
坐等下一篇《经过两个月试用我们放弃了 vue 》

不过说实在的,vue 根本没有生态可言,做项目基本没法用
zjsxwc
2018-12-22 15:33:52 +08:00
还好吧 雅虎金融 用 React 我觉得不卡,没什么性能问题

https://finance.yahoo.com/most-active?offset=0&count=100
bb22
2018-12-22 15:34:16 +08:00
请到 codesandbox 跑个 demo 让我们看看,不然只能怪你们的前端不行了
moeone
2018-12-22 15:34:24 +08:00
吃瓜
momocraft
2018-12-22 15:37:57 +08:00
其实我觉得这个数据量 jquery "只" 卡 2s 就有点喜感.

同为著名框架, 性能差几十倍是不小的新闻了, 发个 demo 也许能上 hn 头条, 你们可以试一下
chenqh
2018-12-22 15:41:09 +08:00
@zjsxwc 点上一页和下一页为什么会有很长时间的空白,而且一页才 100 个,如果是 1K 的话。。
chenqh
2018-12-22 15:42:12 +08:00
@momocraft 1K 只卡 2S,够可以了吧
shyangs
2018-12-22 15:42:17 +08:00
这大新闻为什么不是老外先发现的
老外不是用 React 更多吗
::doge::

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

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

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

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

© 2021 V2EX