V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
changwei
V2EX  ›  前端开发

react 比 vue.js 好在哪?

  •  
  •   changwei ·
    cw1997 · 2017-03-26 14:26:38 +08:00 · 6838 次点击
    这是一个创建于 2586 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    16 条回复    2017-03-28 15:18:37 +08:00
    popu111
        1
    popu111  
       2017-03-26 14:28:50 +08:00
    好在他有 RN 。 XD
    think2011
        2
    think2011  
       2017-03-26 15:59:55 +08:00
    react 相对先发制人,相关生态也比较好,例如 RN 呗

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

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