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

#1

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

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

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

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

1 Like
#2

对于楼主表达的观点:1. 这个观点对于仅用来crud的话没什么影响,但是老哥需要知道的是keep-alive是有性能牺牲的,在多处使用会有影响;
2. jsx大家都有,但是react的props传递更符合函数式的特点;
3. 本人使用过vue,一直都对于修改类上的属性直接this…xxx = xxx这种方式感到:scream:,setState能让开发者和后续的维护人员统一直接知道我做了哪些修改,并且setState里的异步合并都是很不错的思想;但是redux的多处编写代码确实让人吐槽,mbox太过于灵活而没有一个统一的规则去限制,所以flux在react中的实践大家还需共同努力;
4. react-router4版本中,楼主所说的bug有些其实是使用者没有按照v4版本的思想去使用,所以导致作者喷提出issue的朋友,其它的一些bug确实需要作者去修复,vue-router还停留在面向配置的阶段,并且react-router4是函数式的思想,vue-router感觉不可能改为函数式,除非vue给改了

vue的优势在于很多api尤大给出了而react需要自己去实现,对于简单的项目来讲,性能要超出react和ng,但是在项目进行深度优化后,vue和react,ng的差距就会显现出来的;

1 Like
#3

vue,react都用过,更喜欢react,为社么?react前端平均薪资要比vue高,vue的使用者菜鸟比较多。其他理由?市场已经说明了!

#4

看看npm的下载量就知道了

#5

个人感受,react其实只要会js就能上手,没有过多的概念,但是router,redux,脚手架都没有官方的维护,所以不是很好用(就难易程度),vue本身的概念就比较多了,模板语言,各种指令,好处就是脚手架,router,vuex都是官方维护,对初学者而言,上手快,简单好用。非要说哪种好的话,都说react牛逼,什么大型项目适合啥的,不好意思,没开发过大型项目,无法对比,react其实语法用起来很舒服,vue上手快,如果项目急需上线,vue比较适合,如果不是,建议考虑react,开发方式还是蛮好的

#6

大兄弟你这是在搞事情啊,在react的社区发这样的问题。其实老实说我也喜欢用vue,但是楼上的兄弟的观点我还是同意的,react工资高啊,这年头有奶便是娘,何况钱呢?

1 Like
#7

使用dva可以解决redux多处编写的问题呀