单纯的 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?

5819 次点击
所在节点    程序员
56 条回复
deepdark
2018-10-24 17:58:24 +08:00
angular
rockjike
2018-10-24 18:00:42 +08:00
react 会更加灵活
feverzsj
2018-10-24 18:02:27 +08:00
那你让后端干什么
blackboom
2018-10-24 18:05:55 +08:00
以前我会选 Vue 目前我选 Angular
xiaojie668329
2018-10-24 19:19:43 +08:00
我 vue 用得很多,算是比较熟悉了。但是新项目都打算用 react 了,vue 对 TS 实在不大好,特别是写测试的时候。当然也可能是我不熟。
jiyinyiyong
2018-10-24 19:53:07 +08:00
想当年 React 也曾是一个油头粉面的屠龙少年...
leconio
2018-10-24 19:57:19 +08:00
我选择 angular🤔
PythonAnswer
2018-10-24 20:03:30 +08:00
后端模板 哈哈
Bryan0Z
2018-10-24 20:06:25 +08:00
Vue,作为一个后端只会这个
jlkm2010
2018-10-24 20:46:36 +08:00
我选 angular
gouflv
2018-10-24 20:59:35 +08:00
react 组件直接基于 class,继承、抽象类都可以做。vue 是自己定义的一套对象结构声明,用 extend 和 mixin 实现。显然前者的 IDE 支持更好。

虽然 vue 也能用 class-component 实现 oop 的风格,但是毕竟不是官方,用起来总觉得别扭。还是得等 vue3.0 官方支持。

jsx 我是排斥很久的了,但是复杂度真到了那个程度,template 这种半封闭的结结构还真驾驭不了。

最后,vue 的好处当然是简单,足够应付轻量的场景。react 要做到简单就要自己踩很多坑,现在最顺手的是 reach-router 和 mobx。
gouflv
2018-10-24 21:05:32 +08:00
vue 的曲线平,但是上限低。楼主对 vue 有好感很正常,但是长期来看学习 react 或者 ng 才是有能力上升的空间。
Wolfx
2018-10-24 21:07:52 +08:00
vue
xiaqi
2018-10-24 21:55:02 +08:00
react
作为后端人员来说,似乎更喜欢 react 的风格🤔🤔🤔
dbpe
2018-10-24 21:58:31 +08:00
react 大法好。。
valueOne
2018-10-24 21:59:01 +08:00
vue 不解釋
riverxs
2018-10-24 22:20:27 +08:00
@iloveyouso 这个论题涉及一些价值观的东西,但还是需要理性评价一下你给出的论据
1. 对 react 设计理念有更好的理解后,就会知道<keep-alive>这种是应用组件的事,是 ant-design 类似的东西来提供的,React 必须把 state 放在 store 里面(我理解你要说的是用上 redux ),这个首先就是错的,只有必要的 state (大多数)才会放到 store,有些 state 放到 store 反而是错误的实践,为啥要这么做?做过有复杂状态的应用就会知道这是一条极大提高工程质量的建议
2. slot 比 JSX props 直观?这是极为主观的感受,就我而言用 JSX 比 template 要来的直观易用,表达能力更强
3. 状态的依赖管理 Vuex 和 Redux (或者说 Dva/Rematch )可以说是极为相似,但 Vuex 学习成本更低是事实
4. 性能, react fiber 了解一下,况且性能两者基本没差别,生态问题,React 更繁荣,选择更多,但差距不大,效率问题,这个和个人技术熟练度和业务熟悉度更高度相关(和具体技术真的强相关?)
5. 学术 Vs 务实,React 是核心概念极简(自由发挥空间大),Vue API 更多(意味使用方便),但也不会像是 Lisp Vs Java 那样,二者皆是工程务实的,做起项目来两者都是更多的关注数据流和组件化
6. 做着 React 总是没有那种稳定的感觉,其本质还是熟悉程度问题

7. 关于如何做技术选择,真的和技术本身优劣强相关?个人觉得和个人技术品味、经验、团队更相关些
kisnows
2018-10-24 22:30:25 +08:00
React,jsx 表达能力更强,上限更高。
rhyttr
2018-10-24 22:30:52 +08:00
Angular +1
chenxu
2018-10-24 22:47:55 +08:00
angular 路过

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

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

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

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

© 2021 V2EX