和 React 比起来 Vue.js 好用吗?

2016-04-12 09:48:09 +08:00
 doubleflower

打算新开一个个人项目,在 React 和 Vue 之间摇摆。

我之前用过的技术包括 Backbone/Angular/React , Vue 只是大概扫下眼文档。

手工同步数据和页面真得好烦。

很久之前用过快忘记是什么体验了,只记得有点重,组件化开发很弱。 Angular 2 看了眼介绍不是我的菜且体积巨大。

用 React + Redux + ES 6 搞过一个项目,数据井井有条,架构比较清楚,配套也好(自动刷新不丢页面状态),只是有点繁琐。 Virtual DOM 的存在使得和真实 DOM 隔了一层有时很不方便,函数式的架构使得组件之间的通信也难处理。

Vue.js 一眼看上去是实用风格,这框架我在用 React 之前就注意到了,只是当时一看是个国人作品就无视了,想不到突然就火起来了。 它比 React+Redux 轻量,内建组件间通信机制,支持组件,配套也不错该有的都有,看上去挺不错的样子,只是是个人项目,不过作者很勤奋所以这可能不是问题。且看作者的一些文字发现作者视野开阔不太会把 Vue 带沟里去偏离前端大势(参考前段时间很火的真阿当厮 b 大战)。

44068 次点击
所在节点    JavaScript
66 条回复
kirisetsz
2016-04-12 12:27:14 +08:00
写 Vue 还是很快乐的,个人项目可以使用呢, LZ 为什么不都尝试一下呢 XD
ty0716
2016-04-12 12:31:52 +08:00
VUE 上手容易,特别是搞后端的再也不用写那么多 js 了,有木有
weilao
2016-04-12 13:09:42 +08:00
Backbone.js 修改数据自动更新功能其实很容易实现,只要监听 model 发生 change 的时候调用 render 就行(但是效率得不到保障)。框架本身不强制你使用哪种模板,可以自由选择(另外几个框架都不具备这点)。 Backbone 的 Model 是很优秀的,但是后来的框架普遍弱化了 Model 的概念,感觉很可惜。

Angular.js 开创了一个新的时代,使大家都意识到,原来很多事情都是可以自动完成的。但是作为先驱之一,他本身也有很多问题,最大的问题还是概念太多,很多奇葩的语法。学习成本相对较高,初学者容易写出一堆奇怪的东西,最好要有一个高手来规范代码。

Vue.js 继承了 Angular 的诸多优点,并且不断将其他框架的优点整合进自己的框架中。对 model/data 的控制力不足(原生 Object 就是 model),不过可以使用 vuex 解决。中文文档很完备(毕竟国人出品),学习成本低。

React.js 的单向数据流的思路很赞,使得代码更加可控(被 Vue.js 抄走啦)。不过 render 方法里面写渲染逻辑简直蛋疼到爆。 React 最强势的地方其实在于它的生态系统,有服务端渲染、 React Native 等,真正做到了 js everywhere 。
Jeremial
2016-04-12 13:32:28 +08:00
"只是当时一看是个国人作品就无视了"

真是呵呵了
beew
2016-04-12 13:33:06 +08:00
之前用 Backbone ,现在想感受一下 vue.js
plqws
2016-04-12 13:42:23 +08:00
比其他框架省心多了…
doubleflower
2016-04-12 14:31:39 +08:00
@weilao Backbone 自动刷新,这效率。。。还是得老老实实手工处理。另外页面不能组件化也是硬伤。 model/collection 的设计我觉得很不好,离了 Backbone 后我不但觉得更自由了且没有觉得更不方便。基于事件的架构在复杂情况下也容易乱套(比如循环触发),而 redux 无需事件的单向执行过程就很清楚。

React 的 render/jsx 是天才的发明,我完全不觉得写在 js 里有任何不好,且组件化的设计使得一个 render 方法不会长,又和其它逻辑在一个类里更好理解和修改。
HustLiu
2016-04-12 14:32:47 +08:00
没用过 react ,就不乱说话了。
作为 Vue 的忠实粉,大概 15 年初接触,切身体会,上手快,扩展性强,只需要对 mvvm 的理念以及相关的语法有所了解(主要是 director ),可以非常友好的接入到已开发的项目,从零开始构建一个项目更是酸爽,而且 router 、 vuex 这些官方插件的出现,对于用 vue 来构造一个 web app 或者是后台类的 web view ,都是非常方便的。
zymmm3
2016-04-12 14:45:26 +08:00
由兄弟, vue 和 meteor 结合的怎么样了?
sox
2016-04-12 14:52:35 +08:00
Tooling + Vue 让开发简直快如疾风 https://github.com/egoist/tooling

当然也可以 + React 2333
chmlai
2016-04-12 14:55:35 +08:00
horizon
2016-04-12 15:13:37 +08:00
楼主你都分析的这么透彻了还来问啥。
Vue 或者 React 随便一个都 OK 吧。。
xhowhy
2016-04-12 15:44:07 +08:00
MVVM 看上去很灵活,开发效率很高。问题在于对开发者没啥约束,只要改数据就影响 UI ,听起来酷炫牛逼,等业务复杂起来,程序员就很可能不知道视图变化是受哪里的数据改动影响了,深入调试起来比较费劲。总之 MVVM 学习曲线前期容易,后期纠结。
React 提倡的单向数据流对开发者的编码习惯存在一定的约束力,数据流转和视图渲染都是树形的,对于非常复杂的业务来说,还是适合下猛药的,但是考虑到这味药确实很猛,破坏力可能会很大,建议谨慎考虑后选择。
另外对于 MVVM 是否适合简单轻量的业务?程序员从来不知道哪天业务会分分钟扩大规模,说不定公司突然安排几位码农进来和你一起开发,到时候人手就不好管理了,七手八脚的,项目代码立马变一坨屎。结论 maybe 还是不适合。
zackkson1991
2016-04-12 15:52:00 +08:00
前端新手,最近都在徘徊 Vue 和 React 之间。但是最后选择了 React ,因为感觉明显的组件化开发个人感觉更加清晰,当然我自己也觉得 Vue 很不错,因为轻量级,而且开发起来应该很爽~同样也很喜欢尤老师。哈哈~
milklee
2016-04-12 16:11:10 +08:00
歪个楼,只有我一个人看懂了楼主的头像了吗。。
weberCd
2016-04-12 17:08:50 +08:00
以前不清楚,现在 vue 的状态是不必在 data 里面先返回的 @kirisetsz
ivanlw
2016-04-12 18:21:33 +08:00
什么都没用过,只是想问下楼上们,为啥没人提 ember.js ?
clouddd
2016-04-12 18:32:28 +08:00
Vue 的作者本身就是一个跨艺术和科技界的奇葩
Angular 和 React 都是纯码农最爱
对于部分跨界认识而言, Vue 显然更入得了他们的法眼
Bomok
2016-04-12 18:39:34 +08:00
react 写的是 web app
vue 写的是 web page
(我用 WIN ,忽略大小写……:)
xiongbiao
2016-04-12 18:43:40 +08:00
现在正打算用 vue 写个东西

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

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

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

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

© 2021 V2EX