react 比 vue.js 好在哪?

2017-03-26 14:26:38 +08:00
 changwei

问题转载自: https://segmentfault.com/q/1010000008810414

楼主原先是学 vue.js 起步的,因为看到新版知乎以及其他一些大型网站也有使用的是 react ,因此自己跟风去学了一下,总感觉 react 相比 vue.js 开发起来要麻烦很多,效率也不算高。

这里不是框架和语言的撕逼贴,希望大家可以在提供事实依据和论点的前提下和平探讨一下这两个框架的优劣。

6843 次点击
所在节点    前端开发
16 条回复
popu111
2017-03-26 14:28:50 +08:00
好在他有 RN 。 XD
think2011
2017-03-26 15:59:55 +08:00
react 相对先发制人,相关生态也比较好,例如 RN 呗

但觉得 vue 比较好上手,对应 RN 也正在观望的 weex ,生态圈也慢慢丰富了起来

未来难说,话说前段时间发布了 angular 4 ,有人惦记着没..
changwei
2017-03-26 16:53:17 +08:00
@popu111 @think2011 好吧,话说你们两个是被降权了还是我被降权了?为什么我收不到你们两个人的回复提醒???
jiyinyiyong
2017-03-26 17:12:20 +08:00
两点比较明确, vue 的 dom 是通过自己定义的 DSL 写的, react 用的是 jsx 或者说编译过的 js 代码,好处是 js 代码有比较完善的语法检测类型检测等,而 vue 自制的 DSL 未必把这些静态检查甚至运行时的报错处理很好。其次 vue 采用的是 watch 的策略,细节我不了解,但由于对 react 的貌似整页重绘的方案熟悉之后其实比较信赖那种做法,而对 vue 是否存在缺陷并不自信,当然这也很难说,毕竟我写的 vue 代码太少。 react 社区其实也好不错毕竟大公司很多牛人,在各个方向都有人推进,而 vue 社区相对少。另外吧,我也算见过 vue 作者若干次了,当然技能比我搞出很多很多,可是 react 作者在 Twitter 上刷的东西你们都看了吗,更高的层级啊。
popu111
2017-03-26 17:28:19 +08:00
@changwei 是在下被降权了没错,而且降得不少,,,都是当年年少轻狂犯下的错。。。
sammo
2017-03-26 18:38:54 +08:00
react 被设计的目标不是打败 vue ,而是成为更好的 react 。这两个东西(除了都能开发网页之外)没有可比性
Pastsong
2017-03-26 18:45:27 +08:00
React 是为了实现一种纯粹的 UI 编程思想的框架,从 React 和 ReactDOM 库的分离就能看出来
Vue 是为了实现一个方便前端开发的框架,上手要容易很多
zyEros
2017-03-26 19:53:17 +08:00
另外生态和爹甩了 vue 一大截
caomu
2017-03-26 21:23:24 +08:00
Rice
2017-03-26 21:52:32 +08:00
@caomu 好气啊, ios 客户端怎么保存这图
finian
2017-03-26 22:05:43 +08:00
唯一的好处估计是 RN 比 Weex 成熟。 Vue.js 修改状态的方式和 Single File Component 对开发者更友好
cyr1l
2017-03-26 22:41:32 +08:00
@Rice 分享, Safari 打开再保存啊
qiaobeier
2017-03-26 23:07:39 +08:00
@Pastsong React 更“工程”一点。开发成本上还是 VUE 占绝对优势。
est
2017-03-27 00:23:05 +08:00
@caomu 2333 jq 笑到最后。。。
abcbuzhiming
2017-03-27 16:59:38 +08:00
@jiyinyiyong 我没用过 reactJS ,但是你说的两点我很好奇, 1 ,它能对 html 做语法检查? 2.类型检查是怎么回事? JS 本身是弱类型语言
jiyinyiyong
2017-03-28 15:18:37 +08:00
@abcbuzhiming

1. 不是对 HTML 做语法检查. 写在 js 的里 DOM 的表示是 JSX, JSX 的本质是 JavaScript 扩展语法, 需要经过 parsing 和 code generating, 而 parsing 的过程就会检查语法, 以及标签嵌套, 标签属性等等是否有错误. 当然一定程度上说 Vue 的 loader 也会做的. 然后是 JSX 当中带的逻辑代码, 其实就是普通的 js, 那么就正常地按照 js 语法做检查, 甚至包括变量是否定义, 甚至如果用了 flow 还有类型方面的检查. Vue 是自定义的 DSL 来计算, 某些很像 js, 但是我不确定目前对这些 DSL 当中的逻辑代码都否能做到 js 这样的检查.

2. 我倒没有直接说类型检查. js 现在是可以有类型检查的, 基于类型的推断和类型的提示, 直接看 https://flow.org/ .

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

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

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

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

© 2021 V2EX