不熟悉前端,需心求問,並非引戰, VUE 和 react

2022-05-24 13:57:53 +08:00
 markgor

我主要是後端開發,之前接觸到了前端的 vue 2.0 ,慢慢習慣並且感覺挺方便的。 但是今天突然發現,agoda/攜程 /騰訊雲 /阿里雲 他們都是使用 react 進行開發。 兩者上大致差異我也百度過了,但想咨詢下, 如果一個 list 有 30 條,每條有 100 個欄位,通過 vue 和 react 來生成 table 。他們性能差異會很大嗎? 如果需要動態改變其中某一條某一個欄位,vue 和 react 他們性能上會不會有過大的區別? 另外好奇為什麼好像大廠都選擇 react ?

4916 次点击
所在节点    程序员
67 条回复
yamedie
2022-05-24 14:33:11 +08:00
不用 react 的原因是我非常反感 JSX 甚至 TSX 这种东西, 看一眼就让人抓狂
Rrrrrr
2022-05-24 14:40:04 +08:00
写 vue 多一点,如果要我用 react 也可以
gzlock
2022-05-24 14:47:18 +08:00
vue 在国内使用量不少的,但是为什么 npm 下载量少呢?其实答案很简单,因为国内都用镜像库。
react 的 jsx 很好用,但 vue3 也是支持的。
ui 生态对我来说都是 elementui 、antd 之流一把梭,没差别。
脚手架也只会在 nuxt.js next.js 里二选一,这两个脚手架已经磨平了很多使用上的差别(例如页面路由),用起来都很不错。
其实选哪个来用都已经没什么区别了。
yunyuyuan
2022-05-24 14:51:47 +08:00
@eason1874 #11 开发大型应用的话非 ng 莫属吧,团队都是高手除外
weixiangzhe
2022-05-24 15:01:27 +08:00
不是主业,就继续用 vue 呗,咋方便咋来,反正也是国内的主流方向,这些实现方式有时候没有那么重要吧
releaseme
2022-05-24 15:01:57 +08:00
@hxysnail
> 在了解下 JSX 和 hooks 就可以开干了

然后你可能还需要学各种第三方库,redux reselect mbox xstate recoil akita Jotai rematch ......
不过这确实也是生态的体现
shadeofgod
2022-05-24 15:02:15 +08:00
just pick whatever you like
Twinkle
2022-05-24 15:09:38 +08:00
看没人谈性能问题,我先来,在 OP 描述的情况下两者性能基本没差。

数据量往上 Vue 3.0 会相对占优,但是用户感知并不会强烈。继续再往上,就都需要自己来做优化了,比如使用 Virtual List 之类的。
hxysnail
2022-05-24 15:26:23 +08:00
@murmur 确定吗?那 method 怎么写? computed 怎么写?这些都是 JS ,虽然也可以写得很简单。连 array.join 都不知道的后端不是个合格的后端吧,至少我也写过 Python 和 Go ,这个还是很常用的。哈哈~ template 确实用处很多,后端也有很多应用场景,不过个人觉得 JSX 也有能力承担它的角色。说白了都是实现同一个目的的两种不同方案。其实呢,我是后端出事,学前端时是先学了 vue ,学了好久都没找到感觉;但学 react ,印象中速度快很多,可能跟个人的思维方式有关,亦或者跟学了 vue ,有了前端基础有关。
releaseme
2022-05-24 15:26:33 +08:00
![js framework bench]( https://i.bmp.ovh/imgs/2022/05/24/717d60e1d78b5517.png)

就 OP 提到的 list 创建和移位的 case 跑 benchmark ,React 比 Vue 性能还是差不少的

https://krausest.github.io/js-framework-benchmark/2022/table_chrome_101.0.4951.41.html
hxysnail
2022-05-24 15:28:05 +08:00
@releaseme 其实都要学,只不过 vue 打包在一起了
releaseme
2022-05-24 15:29:26 +08:00
当然啦,如果认为 React concurrent mode 跑 benchmark 对 React 不公平,可忽略我上条结论
SMGdcAt4kPPQ
2022-05-24 15:29:36 +08:00
又是这个问题,那么推荐一下 Blazor
darkengine
2022-05-24 15:33:20 +08:00
从 iOS/Android 转 web 的,个人感觉 React 的理念真的是把 web 开发当 app 开发,所以很多东西写起来就很理所当然。vue 也用过,可能是学得不深入,要一直对着文档。
SMGdcAt4kPPQ
2022-05-24 15:37:43 +08:00
@ComputerIdiot 我认为 Blazor 厉害的地方就在于 Blazor Server ,它可以前后端不分离快速开发,同时也可以像现代前端框架一样 SPA 、组件化
iamv2er
2022-05-24 15:40:09 +08:00
团队指定要用啥就写啥 ,我主要是写 java 的🤣面向工资编程
Mexion
2022-05-24 15:44:43 +08:00
理论上 vue 的性能更好,react 会从根组件全量 diff ,vue 自带依赖收集所以只 diff 依赖的组件,但性能在普通应用里基本上很难体现出来。jsx 比模板写起来更舒服,但是 vue 的 hooks 写起来不用自己提供依赖,而 react 需要自己提供依赖,而且 vue 自己提供了很多有用的功能,而 react 只能靠第三方库,有的功能第三方库没法做好,比如 keep-alive 。
react 生态更好,背靠 fb ,国外非常流行,在国内大厂流行也是正常的。
markgor
2022-05-24 15:44:52 +08:00
@releaseme #30 感谢,奇怪的知识又增加了。
SMGdcAt4kPPQ
2022-05-24 15:45:57 +08:00
@ComputerIdiot 其他前端框架的数据绑定是在浏览器内的数据和 UI 绑定,需要自己进行网络请求; Blazor Server 是自动将服务器上的数据和前端浏览器的 UI 绑定
markgor
2022-05-24 15:49:04 +08:00
感谢楼上所有吴彦祖们,
大概都了解了所以然。
帖子我就下沉了,免得成为引战贴。
再次感谢~

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

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

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

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

© 2021 V2EX