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

58186 次点击
所在节点    程序员
325 条回复
gouflv
2018-12-23 01:30:44 +08:00
你们前端 其实挺适合 vue 的,react 驾驭不来
pengtikui
2018-12-23 01:31:48 +08:00
写了个 demo,生成 2000 个 div,每个 div 有一个随机的字符串和背景色,每 100 毫秒随机修改其中一个 div 的字符串和背景色,不知道我的理解是不是正确,效果自己看吧

Demo 地址: https://l7kow2rp5l.codesandbox.io
zkeeper
2018-12-23 06:54:03 +08:00
我觉得大家的争论有点偏题了啊. 问题并不在 React 和 Vue 谁好, 或者 React 是不是适合这个场景, 是不是有缺陷.
楼主的需求是: 楼主的公司需要在给定的时间和既定的人力资源(楼主提到的前端工程师)的经验范围内, 有效的解决这个问题.

既然这样, 那就用该前端最熟悉最喜欢的方式去解决掉它, React 再好, 那名前端不熟悉或者不喜欢也是没用的, 也不太可能因为这点事就把前端炒掉或者说评价该工程师水平不行.

这种帖子, 一开始就偏离了主题, 变成了无意义的骂战.
caiya21
2018-12-23 08:05:56 +08:00
https://github.com/bvaughn/react-window 了解下 长列表优化不了可以用社区方案
zhwithsweet
2018-12-23 08:42:45 +08:00
@chinvo 这个比装的有点大了,一棍子打死了饿了么和滴滴的前端架构了
zhwithsweet
2018-12-23 08:50:40 +08:00
@zsx 非常不推荐新人上来就搞 vue,最好是 react 起手,磨练原生 js,ng 进阶学习不同的设计模式,到时候看到 vue 的语法糖们不是手到擒来。说白了就是不能太懒,一直被 yyx 给惯的。什么最佳实践给你想好了,语法糖给你准备一大堆,this 给代理好...配置就完事了。
deepreader
2018-12-23 09:08:53 +08:00
@pengtikui 大佬牛逼呀。执行力好强。
lovelybear
2018-12-23 09:12:07 +08:00
@zhwithsweet 最好是原生 js,熟悉之后再用 vue
lizz666
2018-12-23 09:16:04 +08:00
建议看看尤大在知乎对 vue 和 react 争论做出的回答: https://www.zhihu.com/question/301860721/answer/536290664
scyuns
2018-12-23 09:34:48 +08:00
这个时候不是自己用原生写更加好吗?还用什么框架啊!所有的框架都没有原生的效率高。emummmm
sirnay
2018-12-23 09:39:25 +08:00
换个前端更容易解决问题。
designer
2018-12-23 09:46:59 +08:00
楼主可能是 VUE 高级黑。
VUE 因为多了楼主这类人 变得口碑越来越不好
Justin13
2018-12-23 10:00:22 +08:00
@TabGre 官网就是最好的教程,文档,博客都仔细看看。说真的很多人只是看完了 tutorial 就不看了。
lufengd3
2018-12-23 10:04:16 +08:00
大家都磨拳擦掌了,楼主还不发 demo ?
Justin13
2018-12-23 10:05:38 +08:00
@zkeeper 偏离主题?lz 上来就是一句:
所以,各位认同 React 不适合大数据高频率的论点吗?
一看就是要鄙视 react 的能力了。
被大家教做人以后又含含糊糊的说了一大堆,其实就一个意思:react 上手难,vue 简单。要是一开始就明白说,根本就没事。
chemzqm
2018-12-23 10:27:18 +08:00
> 我们发现前端的应用过于卡顿

React 不太适合没有较深前端优化经验的团队,因为它只负责 ui,项目里面数据处理乱七八糟的,它不慢才怪了。
xdlucky
2018-12-23 10:39:53 +08:00
我还是觉得这是个算法问题, 话说二叉树的讨论就没了吗? 二叉树行不行楼主试过了吗
BingoXuan
2018-12-23 10:40:27 +08:00
@janxin 渲染线程只有一个吧
scriptB0y
2018-12-23 10:49:11 +08:00
vue 是怎么解决的呢?

楼主给讲讲 @nohup
Vegetable
2018-12-23 10:51:44 +08:00
我讨厌这种信誓旦旦的态度,还 for 循环输出文本卡成狗屎。
觉得自己遇到的问题是没人解决的了的问题。

退一万步说,一千个条目只有一个变化,找出这个的任务为什么要交给 virtualdom ?

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

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

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

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

© 2021 V2EX