101
chrisia 2022-09-02 11:28:22 +08:00
react 能更多地练习 js
|
102
laduary 2022-09-02 11:29:09 +08:00 via Android
坐标澳洲某小厂,同事说对于 Vue 的印象是文档很多都是中文的,用的时候要分屏开一个谷歌翻译😂
|
103
chhpt 2022-09-02 11:31:10 +08:00
就个人而言,选择 React 主要考虑的还是 React 的生态更繁荣,选择性更多。当你遇到一个无法解决的问题时,可能社区里比较容易找到解决方案或相关的库,不论是 Antd ,Antd Pro 还是 MUI ,ChakraUI 等,都是生态繁荣的代表。私以为这不仅是框架的选择,还是面向生态的妥协。
|
106
huangwei8ku 2022-09-02 11:46:52 +08:00 1
一篇帖子看完,正好我半个西瓜吃完,你们等下,我去冰箱拿另外一半
|
107
4196 2022-09-02 11:51:26 +08:00 2
怎么还有人说 react api 简单的,那一大推 usexxx 的官方 api ,不是学习成本吗
|
108
badmarillo 2022-09-02 11:53:58 +08:00
@4196 +1
|
109
QlanQ 2022-09-02 12:01:27 +08:00 1
从 jq 转到 vue ,一是 vue 的可以使用更少的代码,更简洁,最重要的是 把 js 和 html 分开了,不用 js 直接操作 html
当我看到 react 需要在 js 里面返回 html 的时候,我就放弃了,react 永远都不会成为的选项 flutter 那种 逻辑和渲染元素在一起的方式,真的是恶心 让我回想起了 PHP 不前后端分离的日子,好不容易摆脱了 混编,现在要过回去吗 |
111
sgiyy 2022-09-02 12:18:33 +08:00
@guzzhao #95
API 数量比较: Vue: https://vuejs.org/api/ React: https://beta.reactjs.org/apis/react 加上当前页下面 ReactDOM APIs 直观上也是 Vue 提供的 API 多吧。 我之前用 Vue ,后来转 React 后也更加喜欢 React 。JSX + 函数式组件 + Hook (+ TS ),体验真的顺滑。 |
112
makelove 2022-09-02 12:18:35 +08:00 1
react 学习成本可不低,至少比 vue 高。不是说它的 api ,它的 api 没有 vue 复杂,但 hooks 运行时行为非常烦人,至少比 vue 版 hooks 恶心多了,可以说它不是一个完美的框架,至少我觉得 react 当前这样绝逼不是未来。
所以我现在个人项目都转 solid-js 了,有 vue 的 reactive + react 的 hooks 语法,体验太舒服了,写多了 react 转 solid 有种久违的回归 js 经典感觉,函数上下文是静态的,也可以好好的用 setTimeout 等的所有异步了 |
113
dssxzuxc 2022-09-02 12:31:58 +08:00
vue2 和 react17 ,我倾向 react ,因为 vue2 我觉得写起来太恶心了,选项式 api 和 mixin 对于大型项目真的是灾难。vue3 和 react18 ,我倾向于 vue3 ,他在保留简单易用的同时,解决了相当多的痛点。不过 react 我只是看过公司项目,个人并没有深入使用,可能以后也会站到 react 那队,毕竟 vue3 的缺点也不少。
|
114
ragnaroks 2022-09-02 12:39:28 +08:00
是的,就是因为 react 先流行起来的,就这么简单
|
115
ericgui 2022-09-02 12:50:52 +08:00
@yesswssdlh github
|
116
FightPig 2022-09-02 13:05:04 +08:00
vue 的语法好像是比 react 更简单? 虽然我也用 vue,但想说 vue 哪里简单了? react 只是 js 而已,vue 是模板+语法糖
|
117
ColdBird 2022-09-02 13:08:54 +08:00 1
Vue 语法糖多,用起来简单,上手快,但是没有 react 灵活
react 够灵活,但是难度会更高一点 如果一个新手用 vue ,写出来的代码不会特别烂,但是用 react 就能写出一坨屎 |
118
hb751968840 2022-09-02 13:22:47 +08:00
react 用的不够多,争取近两年多写一点。
1. 举个例子,事件,元素,普通属性都是通过 props 传,不用记$on, $emit, <solt namt='xxx' 2. jsx 比模版简介,统一 xxx={}, 模版:style="" :bind v-on: v-model vue 转 react 最难受的 state 不是同步,但场景复杂了就不一定。vue 开发者喜欢把逻辑写到子组建内。就是因为可以直接操作 state 这个特性养成的不良习惯。 转不了就各种 toRef()。 |
119
qdxb 2022-09-02 13:39:09 +08:00
公司技术负责人选择技术和普通开发者选择技术的侧重点是不同的,react 相比 vue 最大的优势就是有 Facebook 做背书,如果出了什么问题,可以“甩锅”给 FB ,你看 FB 也用了出问题了。而如果选择了 vue ,万一出什么问题(比如前两年 event-stream 盗比特币事件),上头一句你当时为什么不选择 react ,直接就把“锅”扣到你头上。
|
120
flyinghigherair 2022-09-02 13:44:22 +08:00
初学者很容易接受 template 而比较难接受 jsx ( tsx )。
除去 webpack 配置方面,单个 vue 文件 /组件的写法更贴近 html/css/js 结构? |
121
dcsuibian 2022-09-02 13:48:46 +08:00
React 有先发优势和大厂背书
我喜欢 react ,主要原因就是对 TypeScript 更好的支持和更好的生态 如果是 vue 先出来(不可能),那我想不到有啥理由要再去学 react |
122
wangyzj 2022-09-02 14:07:58 +08:00
先入为主
|
123
hangbale 2022-09-02 14:24:24 +08:00
react 背靠 facebook ,名门之后,又成名已久,天下多少英雄景仰,好比郭靖,vue 好比杨过,没背景,全靠自己发育,自创黯然销魂掌,最后也同样跻身五绝之列
其实两者玩出花来那也是 js ,无非是抽象方式不同,说某个不行的无非是自己不喜欢或者自己没掌握。 |
124
sky857412 2022-09-02 14:31:21 +08:00
vue 的 slot 是真的反人类,匿名插槽,具名插槽,默认插槽,写的时候心智负担太重。相反 react ,会 html 、js 知识再学会 state 、props 就可以干活了
|
125
yazinnnn 2022-09-02 14:41:22 +08:00
不说 vue, 只说布道方法
尤雨溪是不是前端圆胖肿? |
127
libook 2022-09-02 14:43:49 +08:00
建议不要公开评价你不深入了解的东西,因为评论会告诉你你的感觉不靠谱。
这个贴就是个引战贴,真正真诚提问的会把实际遇到的需求场景和问题发出来让大家集思广益,而不是只说个主观感受然后让大家各自发挥。 |
128
vanton 2022-09-02 14:47:28 +08:00
vue 比 react 简单?
这个结论你下的太早了。 |
129
thefck 2022-09-02 14:53:29 +08:00
@churchill #94 还能这么吹? lint 规则本来就是各有各的风格,我自己的项目我都是关 eslint ,不需要它教我写代码。
还有这个例子,根本就是 react 糟粕的体现,useEffect 的依赖还要手动声明,在很大程度上加大了开发者的负担,因为错写依赖闹出的 bug 可不少 |
130
GiantHard 2022-09-02 14:58:00 +08:00 via Android
为啥就不能全都要,在 react 里面用 vue composition API 不就好了?
|
131
solohealer 2022-09-02 15:00:20 +08:00
@zhuweiyou #38 同意。当初看了一下两者的 api ,react 的 api 太少了,感觉一下就看懂了
|
132
xrr2016 2022-09-02 15:00:20 +08:00
react hooks 很烦人~
|
134
zhwithsweet 2022-09-02 15:15:31 +08:00
你们太懂前端了,学到了
|
135
doco 2022-09-02 15:20:53 +08:00
@Hanser002 #91 antdv...就别吹了吧这个, 用着超难受的好吧, 给人的感觉就完全是从 antd 硬改成 vue 的
到现在我还记得给 antdv1.7.8 提了个 bug, 回复说 antdv3 解决了. v1.7.8 是 vue2, v3 是 vue3 啊, 我因为一个 bug 去升级整个项目? 还有去看 1.7.8 对应版本的 antd, 按钮图标不居中这个 bug 都完美复现了呢~ |
136
h1104350235 2022-09-02 15:26:47 +08:00
因为 vue 是后起之秀,要追平应该还需要点时间。
我 vue 和 react 都写,其实感觉不到多大的区别,尤其是 vue 用了 hook 。 react 推出的早,背后也是大厂,目前也是很多大厂在用。 至于那个框架好,这种很难评出。像这个类型的问题,vue 作者尤雨溪也回应过,有兴趣可以搜下。 框架好用就行,把更多的时间花在原生语法的学习上。 |
137
sjhhjx0122 2022-09-02 15:29:05 +08:00 2
说的好,我选 angular (打起来!!!)
|
138
qiaobeier 2022-09-02 15:36:05 +08:00
@IvanLi127 确实,vue 和 angular 我在 1 代就使用了,angular 第一印象太差了,除了接手的修改项目我基本再没用过。
vue 的使用感受就好太多了,非常适合小项目,我自己的私单基本靠 vue 解决,现在用 vue3 感觉也非常不错。 但是真正要做个工程,团队使用还得是 react ,而且学 react 有个很实际的原因,雇主原因多付钱啊。😂 |
139
releaseme 2022-09-02 15:40:18 +08:00
工作用 React ,说实话很讨厌,手动依赖管理,闭包陷阱,各种手动性能优化, 然后还性能拉胯。
当然生态和灵活度,开发体验没得说 |
140
leega0 2022-09-02 15:42:33 +08:00
对于一个从写页面出身的老前端,内心还是非常排斥 react 的(虽然小写了点),接受不了 all in js ,vue 层次分明没有心智负担。
|
141
monetto 2022-09-02 15:42:53 +08:00 3
@nzbin 其他的不说,我就说一点。Vue 一开始宣传的是 “完备的中文文档”,后面中文文档跟不上的时候,又说 “为什么牺牲自己的时间代替你们学英语”。
我不认为应该强要求一个中间件有中文文档。但是如果你以这个为卖点,但是后面又 ... 实在不赞同。 |
142
qzsi001 2022-09-02 16:03:30 +08:00
简单不等于容易
vue 诞生面对的问题和现在的 vue 面对的问题完全不是一个概念 react 作为 fb 内部孵化的项目,是走了很久的,又有项目的实际支撑,加上生态的逐渐完善,才能到现在这一步 vue1 说白了只是个半成品,所以才会有 vue2 的断层式的升级 举个不恰当的例子 现在的 vue2 有点武侠中的少林伏虎拳,学会了,干啥都行,在武林上算一号人物,但是面对顶尖高手,他还是需要各种魔法支持 react 出身豪门,天生自带各种支持,相当于降龙十八掌,学起来贼难,但是学会了,基本什么样的顶尖高手,你都有路子能解。 大多数业务的场景,一堆伏虎拳的人就足够解决问题了 又有效率又便宜好解决问题 但是总归业务会到一定程度,单纯的靠伏虎拳想打天下还是有点难度的, 所以 在国内就会出现小公司大规模的都是 vue 开发快,好上手 大公司需要 react 解决更多更复杂的业务场景,能有更好的适应需求 |
143
wangxiaoaer 2022-09-02 16:04:14 +08:00
@jguo jsx 不是吗? vue 的所谓 directive 就是 html 的扩展属性而已。
|
144
karott7 2022-09-02 16:12:50 +08:00
个人更喜欢 React ,因为组件封装更简单,api 更少,设计理念和生态(比如 hook ,react-refresh )更好。
不过我也觉得 Vue 作为一个社区驱动的项目也很牛逼(而且现在还创造了 Vite ),毕竟 React 有大公司背书,React 很多核心开发者都是 Facebook 的人。 另外为什么讨论框架要说到作者个人行为上去,Vue 作者靠开源生活,社交言论带有推广项目之类的行为无可厚非。 |
145
wangxiaoaer 2022-09-02 16:14:49 +08:00
好久没关注 React 了,顺便问下:
1 Redux 还是根裹脚布一样吗?改个 action 名字,修改 N 次?异步好像还得再引入库。 2 JSX 还是 js html 混搭吗? 3 引入 css 的话目前主流方案定了吗? |
146
demo 2022-09-02 16:30:38 +08:00
咋都在推 react ,我就不一样,我还在写 vue2 😂
|
147
sjhhjx0122 2022-09-02 16:54:44 +08:00
@qiaobeier 如果用 ng 和 vue 一起用对 ng 印象差,你肯定用的 angularjs 不是 ng
|
148
shunia 2022-09-02 18:37:20 +08:00 1
框架本身区别不大,爱用哪个用哪个。
一些习惯上的问题我发现基本都是不用 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 的文档,会发现它的文档内容非常优秀。它文档写的篇幅都比较长,但是基本都只是为了把事情解释的更加明白,或者不厌其烦的告诉你使用的边界; |
149
xiaojun1994 2022-09-02 19:07:09 +08:00
react 我用着真不咋行,除了写的自由,现在的一对 hooks 很容易让新人栽坑
|
150
jinliming2 2022-09-02 19:41:13 +08:00 via iPhone
@murmur 我不知道你为什么觉得模板里用 forEach 比 map 更合理?
按照正常的模板思路,比如模板字符串,`a ${'b'} c`,正常都能看懂是 'a'+'b'+'c' 的意思,那我现在要把这个 'b' 改成拼接一个数组的内容,你觉得是用 map 更符合直觉还是说 forEach ? map 和 forEach 都是有自己的语义的,不管是前端还是后端,这个语义都是统一的:map 是针对每一个元素映射一个输出,是有返回的; forEach 是针对每一个元素进行一个操作,是没有返回的。 用 map 将数组值转换为可渲染的对象,交由模板外面的渲染引擎去渲染,还是用 forEach 处理一个数组,没有返回也没有调用某种渲染 API ,就莫名其妙的输出并拼接到模板里了? forEach 的话,最起码里面得要调用一个 render 、write 或者 print 之类的函数调用才更符合直觉吧?但就这个隐式调用就很迷…… |
151
TossPig 2022-09-02 19:52:17 +08:00
嗯嗯,我还是继续用 angular 吧
|
152
Froyo9 2022-09-02 20:26:22 +08:00
vue 用的人也挺多的, 我认识的一些南美人都用过 vue.
|
153
DOLLOR 2022-09-02 20:29:48 +08:00
react 封装组件相比 vue 更直观,因为 react 的组件其实就是个返回值为 jsx 结构的函数。
vue 开发更倾向于复制粘贴代码,而不是把重复的代码封装成组件。 长时间观察 react 项目和 vue 项目就会感受到,react 项目的代码经常层层封装,而 vue 项目经常一个页面就是一个巨大的.vue 文件,填满几万行代码。 |
154
Dragonphy 2022-09-02 21:05:01 +08:00
2022 年了,Vue 这边有字节的 Arco Design ,为什么逮着 ant design 薅呢,欢迎大家贡献 issue ,多多踩坑🫡
|
157
DOLLOR 2022-09-02 21:38:28 +08:00
@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 还是这里面相对最成熟的组件库,其他的,在项目初期就得做许多前期工作。 |
158
FightPig 2022-09-02 21:42:08 +08:00
@makelove 原来我在自己项目用 svelte, 然后 svelte-kit 的改动太大了,最近玩 solid-js ,发现还挺不错的,
|
159
Ashore 2022-09-02 21:44:19 +08:00 via Android
这帖子即将进入水深火热
|
160
tonytonychopper 2022-09-02 22:16:25 +08:00
vue & react 都写过,react 的好处就在于足够灵活,写起来可以放飞自我。另外我觉得,一个框架上手程度高不高和他好不好用是两码事,文档那么多如果连这都不会用那么可以早点退休了 = =
|
161
pytth 2022-09-02 23:43:15 +08:00 via iPhone
都挺好,我继续用 jquery
|
162
px920906 2022-09-02 23:51:12 +08:00
拿公司 vue3 项目举两个例子,不输出观点:
开发中经常遇到调试几分钟十几分钟最后发现是有个地方忘加.value ;(项目是前员工 create vite 建的,不知道为啥 ide 没类型提示) 想把单文件组件里一小块单独抽成一个简单的只在当前.vue 文件内用的小组件,似乎只能再新建一个 vue 文件?(如有更好办法请不吝赐教) |
163
tonytonychopper 2022-09-03 00:55:16 +08:00
@px920906 vue 也可以用 jsx 语法,详情请 Google 。
|
164
mxalbert1996 2022-09-03 01:19:37 +08:00 via Android
@Leviathann
说 Compose 是 React 的后代没问题,Flutter 和 SwiftUI 只是和 React 同为声明式 UI 框架,实际上还是很不一样的。 |
166
Er1c0 2022-09-03 01:27:20 +08:00
没活整活
|
167
vision1900 2022-09-03 01:56:27 +08:00
React 是哲学,需要使用者真正理解它的思维方式,一旦开窍就会觉得自己无所不能,是个自由的崽儿
|
168
sarices 2022-09-03 09:55:32 +08:00
国内还是 vue 流行,特别小城市,面试了 10 几个前端没有一个会 react 、typescript 的,我就郁闷了,同一个语言啊,有那么难学吗?
|
169
FrankHB 2022-09-03 10:24:54 +08:00
@luckycat 说是艺术,很大程度也就是掩盖过气的技术能力不足罢了。
UNIX 默认非技术型用户不关心他们不提供的东西,但实际上这就是事后诸葛亮,而且大部分根本不符合事实。 所谓只提供机制不提供方针的哲学做到的就是 UNIX 风格的产品默认永远是半成品,因为即便是理解技术并完全能调整体验的用户,也没机会在内部自动化复用这些过程的冗余——除非自己二次开发。 随便加个约定优于配置的思路,根本不会导致“束缚在一套方针或界面风格内”。只要足够模块化,过气的东西直接扔给用户就是(而不是从来就当不存在),这没有后遗症。 某种意义上,这种自以为是也是 X 被 Windows 很大程度取代的原因,尽管后者连更重要的“机制”都不提供。 逼迫用户丢了西瓜捡了芝麻,可不是什么光荣的历史。 另外一个类似的故事是《无名师和万行码》。 其实就是 UNIX 祖师爷水平不足,造不出同时能适应 C 和 shell 需求的解决方案,于是反过来强词夺理来分裂原始需求了。 |
170
AyaseEri 2022-09-03 11:10:06 +08:00
我接触下来后端也许不太能接受 React ,因为一个函数式组件输入参数创建之后返回的不是一个实例,他们没法接受这个事实,因此指导前端架构的时候频频起矛盾(幸好函数式组件还留了 ref 机制)。
|
171
ecloud 2022-09-03 11:49:22 +08:00 via iPhone
@monetto 这咋了,apple 从 RISC 换到 X86 又换回 RISC 自己吃了多少次自己的屎。IBM 把自己发明的 PC 都给卖了。还记得 IA64 吗😂
|
172
SoulDee 2022-09-03 13:33:36 +08:00
有没有可能,只是基础语法更简单,越到后面难度越是接近。。。
|
173
implion 2022-09-03 15:34:22 +08:00
感觉 React 在构建程序员思维方面比 Vue 好,Flutter ,SwiftUI 还有 Android 那个 Compose ,包括 Vue3 的 Compose Api 有很明显的 React 风格,个人觉得这就是一段时间前端的范式,包括一段时间提及的 f(state) = ui ,感觉就是 React 开始风靡的时候传开来的,vue 个人觉得在程序员思想的构建上不如 React
|
174
efaun 2022-09-03 17:24:42 +08:00
因为鱿鱼吸不支持中文文档🐶
|
175
broker1024c 2022-09-03 19:22:58 +08:00 via Android
@Rocketer java 那么差
|
176
xiangchen2011 2022-09-04 15:20:22 +08:00
vue 我感觉很符合中国人的思维哇,学起来更简单?
|
177
litujin1123 2022-09-04 18:43:06 +08:00
@px920906 vscode 用 volar ,eslint 、typescript 配置好一般也能知道少写了 value
|
178
chenjiangui998 2022-09-04 22:12:59 +08:00
@terranboy vue3 的 composition 和 react hooks 有本质区别, vue3 的响应式系统是可以脱离 view 的, 你甚至可以在 nodejs 中响应编程, 而且也没有 react hooks 的闭包缺陷, 而 react 的 hooks 是无法脱离组件的上下文的, 使用场景比较受限
|
179
dayeye2006199 2022-09-05 09:05:58 +08:00
Hotwire 党表示前后端分离是啥,我还能战
|
180
monetto 2022-09-05 11:36:45 +08:00
@ecloud 性质不一样,Vue 大量招募英语不好的小白加入,小白加入之后,立马又改变对中文文档的态度,如果是一开始没将中文文档作为卖点,这件事是情有可原的。
但是问题是,你拉英语不好的小白,为你增加影响力。当你不需要这些小白之后,名声起来了,立马就可以将这些小白扔掉。 程序员是需要学习英语,学习英语确实是一项必备的技能。但是,你不能过河拆桥啊。比较有很多人只想吃口饭,不想往上干。 |
181
ihet 2022-09-05 12:30:39 +08:00 1
到底有什么样的需求,只有 React 才能解决而 VUE 解决不了的?
实际中小厂招的人水平参差不齐,新手用 react 写各种性能负优化,同样的人瞎写 vue 底线还是可以保证的。 甚至于大厂,你们自己开开性能面板,用 react 写的页面有多卡大家应该有目共睹。 |
182
acplumber 2022-09-05 13:45:13 +08:00
React 适合大项目,配合一些状态管理的库,在超大规模的前端代码库里可以实现比较好的开发和调试效率。Vue 在中小型项目上开发效率比 React 高。各有优缺点。
|
183
jtsr 2022-09-05 19:59:49 +08:00
如果 vue 是苹果公司开发的,那会不会大部分都选择 vue 呢
|
184
yesswssdlh OP @acplumber 正好想请教一下,最近学到 redux ,看到网上对其褒贬不一,我这个小白很迷惑,请问大佬你平时是如何做这种集中式状态管理呢?也是用 redux 吗?
|
185
acplumber 2022-09-05 23:02:20 +08:00
@yesswssdlh 小项目用 Redux 不划算,可以用 Recoil, 相当与是一个简化版的 Redux, 适合快速上手。
|