单纯的 CRUD 项目,你会选择 Vue 还是 React?

2018-10-24 17:01:19 +08:00
 iloveyouso

我先来一个,我选 Vue,原因如下:
1,Vue 有官方支持的<keep-alive>,React 没有或者是要自己去实现一遍,实现不好还容易踩坑,没有大量使用案例做经验支撑。而且 Vue 的 keepalive 组件还可以保持所有 DOM 各个细节的状态,React 必须把 state 都放在 store 里面,繁琐的要死
2,Vue 也有 JSX 支持,而且 slot 比 React 传入的 JSX props 不知道要直观到哪里去了,看起来很直接方便
3,Vue 管理依赖跟踪很方便,不会像 React 那样又要 setState 又要 this.props.onChange(),而且 Redux 搞一个状态跟踪要弄三处地方。如果我一个页面有二十来个状态,我就得搞二十来个 reducer。
4,React-Router V4 的 BUG 可以列一长清单,之前踩过好几次坑,比如 this.location.pathname 为空,跳转之后拿不到对应的 params,后来查询发现都是官方自己的 bug 问题。在 Issue 里,可以看到对 V4 的路由 BUG 描述那是十个手指头都列不完,每个 BUG 都可以说比较致命,甚至还有作者和提 Issue 的互骂。</keep-alive>

最主要是 keep-alive 让我一直离不开 Vue,这个特性是 Vue 官方支持且经过大量使用的。
我也曾查询 React 官方对这一特性是否愿意支持,很遗憾他们提供的建议都是让开发者自己造个轮子(比如设置为 display:none),不愿意官方统一开一个类似 React-Router 这样的项目,让使用用户更集中,BUG 更容易被发现,你一个造轮子的项目我一个造轮子的项目,这样的开源库谁敢用啊,无语。

所以 Vue 让我感觉就是一个词:务实。技术风格就像 Java 那样,每个 Api 都经过几十万用户的使用验证,不管对个人 solo 还是团队开发,都能稳步推进项目进度,就算是出问题了也能很快排查出来,不用花费无用功在性能啊 store 同步身上。

而 React 给我的感觉就是:非常 hack 和先进前卫。喜欢偏重概念和思想,虽然看起来很 good 的,但是对一个项目各方面的支持比不上 Vue,耗费大量时间精力做出来的东西,性价比并不高。做着 React 总是没有那种稳定的感觉,而且感觉自己像个码农一样,如果不是十几人起步的团队,我真的不会选择 React,太过于学术派了,不切和开发者体验,那真的是很不好用!!

所以问题来了,你们在做 CRUD 项目时,会用 React 还是 Vue?

5886 次点击
所在节点    程序员
56 条回复
allce231
2018-10-24 17:09:52 +08:00
vue
whypool
2018-10-24 17:12:23 +08:00
vue
Lax
2018-10-24 17:14:47 +08:00
听听大家怎么说,有个 electron 的项目不知道怎么选
tremblingblue
2018-10-24 17:15:50 +08:00
都不选,rails/django
jerrry
2018-10-24 17:17:17 +08:00
感觉又要战起来了
Wincer
2018-10-24 17:18:25 +08:00
前面都说 Vue,那我来说一个 react (#滑稽
garlics
2018-10-24 17:20:04 +08:00
选 PHP (#滑稽
riverxs
2018-10-24 17:27:35 +08:00
其实选楼主选 Vue 一个原因就够了,更熟悉 Vue,其他论据都是站不住脚的,我要选 React 我也能列出一大堆 Vue 和生态的缺点
90928yao
2018-10-24 17:28:55 +08:00
React-Router 现在没这么搞人的 bug 了吧
我个人喜欢 React
xuhaoyangx
2018-10-24 17:29:46 +08:00
后端+手机移动端开发来说,我选择 jq
Keyes
2018-10-24 17:31:25 +08:00
@Lax 刚好我也在公司开了个 electron 坑,好在比较简单就是一个 OpenVPN 客户端,目前在用 react+antd
iloveyouso
2018-10-24 17:33:12 +08:00
@riverxs 不管是性能还是效率还是周边,我感觉 Vue 更贴近开发者的角度,没有那么多理论的东西。
我指出来的这些应该不只是我个人的痛点,也是很多开发者的痛点,相比之下,我找不出为什么放着 vue 不用跑去用 react 的理由
asAnotherJack
2018-10-24 17:33:26 +08:00
我选韩信
qingzhan
2018-10-24 17:35:34 +08:00
引战嗦,就像八楼说的你只是更熟悉 vue 而已,选自己喜欢的就好
tyrealgray
2018-10-24 17:35:46 +08:00
当然是选 jquery 了啊。

还是个人非常喜欢 redux,自己已经开始用在非前端的项目中了。react 和 redux 结合起来用的那些繁琐其实可以看成是一种强制的规范,挺合理的,再差的新人改 reducer 里面的东西的时候,只要跑通了,基本上你也不担心会有什么特别大的问题。
wu67
2018-10-24 17:36:00 +08:00
好吧, 作为一只小渣渣, 我选择 vue.js, 毕竟我就只会这个
lijsh
2018-10-24 17:37:10 +08:00
一个滚动加载下一页的列表,当滚动到第 n 页的时候,点进某个详情再后退,大部分 SPA 就回到顶了,单这个需求来看,keep-alive 好用很多;不过因为是把列表缓存起来,item 太多的话,性能肯定有影响。
as80393313
2018-10-24 17:40:44 +08:00
Vue 大发好啊。全局的 bus,react,还没有想到这么实现。
LokiSharp
2018-10-24 17:45:18 +08:00
我选 Angular
hosea
2018-10-24 17:56:02 +08:00
小的用 Vue 大型的用 React

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

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

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

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

© 2021 V2EX