真诚发问,非钓鱼贴。之前一直用的是 vue,最近学了下 react,感觉上 vue 的语法好像是比 react 更简单。那么为啥国内外大公司都在用 react,用 vue 的相对比较少呢?是因为 react 先流行起来的吗?

2022 年 9 月 2 日
 yesswssdlh
23503 次点击
所在节点    程序员
185 条回复
monetto
2022 年 9 月 2 日
@nzbin 其他的不说,我就说一点。Vue 一开始宣传的是 “完备的中文文档”,后面中文文档跟不上的时候,又说 “为什么牺牲自己的时间代替你们学英语”。

我不认为应该强要求一个中间件有中文文档。但是如果你以这个为卖点,但是后面又 ... 实在不赞同。
qzsi001
2022 年 9 月 2 日
简单不等于容易
vue 诞生面对的问题和现在的 vue 面对的问题完全不是一个概念
react 作为 fb 内部孵化的项目,是走了很久的,又有项目的实际支撑,加上生态的逐渐完善,才能到现在这一步
vue1 说白了只是个半成品,所以才会有 vue2 的断层式的升级

举个不恰当的例子
现在的 vue2 有点武侠中的少林伏虎拳,学会了,干啥都行,在武林上算一号人物,但是面对顶尖高手,他还是需要各种魔法支持

react 出身豪门,天生自带各种支持,相当于降龙十八掌,学起来贼难,但是学会了,基本什么样的顶尖高手,你都有路子能解。

大多数业务的场景,一堆伏虎拳的人就足够解决问题了
又有效率又便宜好解决问题
但是总归业务会到一定程度,单纯的靠伏虎拳想打天下还是有点难度的,
所以
在国内就会出现小公司大规模的都是 vue 开发快,好上手
大公司需要 react 解决更多更复杂的业务场景,能有更好的适应需求
wangxiaoaer
2022 年 9 月 2 日
@jguo jsx 不是吗? vue 的所谓 directive 就是 html 的扩展属性而已。
karott7
2022 年 9 月 2 日
个人更喜欢 React ,因为组件封装更简单,api 更少,设计理念和生态(比如 hook ,react-refresh )更好。
不过我也觉得 Vue 作为一个社区驱动的项目也很牛逼(而且现在还创造了 Vite ),毕竟 React 有大公司背书,React 很多核心开发者都是 Facebook 的人。
另外为什么讨论框架要说到作者个人行为上去,Vue 作者靠开源生活,社交言论带有推广项目之类的行为无可厚非。
wangxiaoaer
2022 年 9 月 2 日
好久没关注 React 了,顺便问下:
1 Redux 还是根裹脚布一样吗?改个 action 名字,修改 N 次?异步好像还得再引入库。
2 JSX 还是 js html 混搭吗?
3 引入 css 的话目前主流方案定了吗?
demo
2022 年 9 月 2 日
咋都在推 react ,我就不一样,我还在写 vue2 😂
linkopeneyes
2022 年 9 月 2 日
@qiaobeier 如果用 ng 和 vue 一起用对 ng 印象差,你肯定用的 angularjs 不是 ng
shunia
2022 年 9 月 2 日
框架本身区别不大,爱用哪个用哪个。
一些习惯上的问题我发现基本都是不用 react 的人在喷 react 有多不好,比如 jsx 就很多人不喜欢,css in js 也很多人不喜欢。
但是很少有人喷 vue 的单文件也很麻烦?比如如果你不依赖支持的插件,写单文件代码其实也挺让人崩溃的。你当然也可以说可以不用单文件,但是就像会 react 的人告诉你 jsx 也可以不用一样。

我选择 react ,因为很多细节上的原因吧:
1. react 整体相对来说更稳定,这是大公司复杂流程带来的优势;
2. react 的开发者的友好度更高,或者单纯归纳到 Dan 身上也行。如果你也看过 Dan 的演讲或者一些技术类的视频,你会发现他非常擅长把一个问题讲的很细致且易懂。而且他带领的 react 开发者团队能够真的做到从整体上解决一个问题,就光说 rfc 这个东西,我就很少见到其他框架去做,并且还做的非常彻底。18 里面更新了一个底层的 API ,甚至会联合几大重要库作者或者公司一起商量解决方案,最终保证了 API 及时推进到各个库里进行更新;
3. react 的自由度在我看来比 vue 要高。实际去写 react 的时候你会发现其实没有太多需要用到的 API ,也就是没有太多需要去记住的内容。当然 hooks 在使用上还是有一些实际的限制的,也会增加额外的心力,这个不可否认,即便它带来的收益也更高;
4. 不考虑语言的障碍,你去看 react 的文档,会发现它的文档内容非常优秀。它文档写的篇幅都比较长,但是基本都只是为了把事情解释的更加明白,或者不厌其烦的告诉你使用的边界;
xiaojun1994
2022 年 9 月 2 日
react 我用着真不咋行,除了写的自由,现在的一对 hooks 很容易让新人栽坑
jinliming2
2022 年 9 月 2 日
@murmur 我不知道你为什么觉得模板里用 forEach 比 map 更合理?
按照正常的模板思路,比如模板字符串,`a ${'b'} c`,正常都能看懂是 'a'+'b'+'c' 的意思,那我现在要把这个 'b' 改成拼接一个数组的内容,你觉得是用 map 更符合直觉还是说 forEach ?

map 和 forEach 都是有自己的语义的,不管是前端还是后端,这个语义都是统一的:map 是针对每一个元素映射一个输出,是有返回的; forEach 是针对每一个元素进行一个操作,是没有返回的。
用 map 将数组值转换为可渲染的对象,交由模板外面的渲染引擎去渲染,还是用 forEach 处理一个数组,没有返回也没有调用某种渲染 API ,就莫名其妙的输出并拼接到模板里了?
forEach 的话,最起码里面得要调用一个 render 、write 或者 print 之类的函数调用才更符合直觉吧?但就这个隐式调用就很迷……
TossPig
2022 年 9 月 2 日
嗯嗯,我还是继续用 angular 吧
Froyo9
2022 年 9 月 2 日
vue 用的人也挺多的, 我认识的一些南美人都用过 vue.
AV1
2022 年 9 月 2 日
react 封装组件相比 vue 更直观,因为 react 的组件其实就是个返回值为 jsx 结构的函数。
vue 开发更倾向于复制粘贴代码,而不是把重复的代码封装成组件。

长时间观察 react 项目和 vue 项目就会感受到,react 项目的代码经常层层封装,而 vue 项目经常一个页面就是一个巨大的.vue 文件,填满几万行代码。
Dragonphy
2022 年 9 月 2 日
2022 年了,Vue 这边有字节的 Arco Design ,为什么逮着 ant design 薅呢,欢迎大家贡献 issue ,多多踩坑🫡
Dragonphy
2022 年 9 月 2 日
@laduary Vue 文档都是先有英文后翻译成中文的啊
Dragonphy
2022 年 9 月 2 日
@doco #135 arco design vue
AV1
2022 年 9 月 2 日
@Dragonphy

我觉得 ant design 强在不仅仅是 ant design ,还有它的重型组件 ProComponents ,比如:
https://procomponents.ant.design/components/table
筛选+表格+分页,这种结构在各种 crud 系统里是极其常见的组合,ProTable 一个组件就全都包揽下来了,不再需要二次封装。再比如:
https://procomponents.ant.design/components/modal-form
弹出一个模态框,录入表单,ModalForm 也是一并包揽,不再需要二次封装。

用了这么多 XX design 、XX UI ,我的感受就是这样,Ant Design 还是这里面相对最成熟的组件库,其他的,在项目初期就得做许多前期工作。
FightPig
2022 年 9 月 2 日
@makelove 原来我在自己项目用 svelte, 然后 svelte-kit 的改动太大了,最近玩 solid-js ,发现还挺不错的,
Ashore
2022 年 9 月 2 日
这帖子即将进入水深火热
tonytonychopper
2022 年 9 月 2 日
vue & react 都写过,react 的好处就在于足够灵活,写起来可以放飞自我。另外我觉得,一个框架上手程度高不高和他好不好用是两码事,文档那么多如果连这都不会用那么可以早点退休了 = =

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

https://v2ex.ih06.com/t/877148

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

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

© 2021 V2EX