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

[好文加精] 为什么我们放弃了 Vue? Vue 和 React 深度对比

  •  
  •   zhdsuperm · 2020-08-06 21:11:44 +08:00 · 5023 次点击
    这是一个创建于 1576 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我使用 Vue 和 React 已经很长一段时间了,两个框架上实践代码量都在 10 万行以上。不得不说两者都是很 nice 的,帮助开发者减少很多工作量,这类框架是现代化前端开发必备的。然而 Vue 和 React 两者之间的选择并不像选择苹果或香蕉一样简单,两者在工程实践上的差距让我们逐渐放弃了 Vue 。本文以不一样的角度对两者进行深度对比。

    ...

    那东西就是全局作用域。拿“允许在全局作用域上随便放东西很方便”作为优点的话,和“允许随地大小便会很方便”有什么区别……

    见下面长文。(^__^) 嘻嘻……
    为什么我们放弃了 Vue ? Vue 和 React 深度对比

    29 条回复    2020-08-07 16:15:30 +08:00
    putaozhenhaochi
        1
    putaozhenhaochi  
       2020-08-06 21:18:28 +08:00
    @Evan You
    loading
        2
    loading  
       2020-08-06 22:01:01 +08:00 via Android
    看看,我用 vue 2 没多久,听说 vue 3 很差,有点想换 react 了。
    zhdsuperm
        3
    zhdsuperm  
    OP
       2020-08-06 22:03:33 +08:00   ❤️ 1
    @loading Vue 3,function API 没好多少,可以看上文里面的写法对比,还不如 class 写法。如果你原先会 Vue 切换到 react 很轻松,概念两者都差不多的。建议你试试
    Wincer
        4
    Wincer  
       2020-08-06 22:05:35 +08:00 via Android
    每次谈论到 vue 和 react 的时候帖子总少不了争论,结果还是谁也说服不了谁。。
    zoharSoul
        5
    zoharSoul  
       2020-08-06 22:05:41 +08:00   ❤️ 3
    [好文加精] 是什么鬼...
    Jirajine
        6
    Jirajine  
       2020-08-06 22:08:29 +08:00 via Android
    写的挺好的,vue 、go 、css 都是那种看起来简单,实际上坑很多的东西。
    vue3 改进了 ts 的支持,以及抄了不少 react 的东西缝合进来,倒也值得一看,就是没有 react 那么优雅一致性好。

    推荐阅读
    https://medium.com/actualize-network/comparing-frontend-approaches-part-7-final-thoughts-69cdba516f86
    这一系列文章,分别用 jQuery 、vue 、react 、elm 写同一个应用,能清晰的感受它们的区别。
    gouflv
        7
    gouflv  
       2020-08-06 22:11:02 +08:00 via iPhone
    就说同样一套 ant design,react 写的很正常,vue 版本那 jsx 源码跟天书一样。虽然不排除人的因素,但是能看出两个适用范围还是有挺大差别的
    zhdsuperm
        8
    zhdsuperm  
    OP
       2020-08-06 22:16:55 +08:00
    @gouflv 是的 vue 版本的 antd 有部分作者用模板写不下去了,用 jsx 搞定了
    suzic
        9
    suzic  
       2020-08-06 22:22:09 +08:00 via Android   ❤️ 4
    Vue 项目解决 bug 和疑难杂症三大定理

    没有什么是 deep watch 解决不了的,有就加 immediate
    事件相关,dom 相关记得 nextTick
    实在不行,就用 setTimeout

    哈哈哈,多么痛的领悟!一定是改了不少的 bug 吧!
    zhdsuperm
        10
    zhdsuperm  
    OP
       2020-08-06 22:25:12 +08:00
    @suzic 我以前以为时我比较挫,代码写的烂才这样。。。直到一位师兄给我普及三大定理
    zhdsuperm
        11
    zhdsuperm  
    OP
       2020-08-06 22:26:35 +08:00
    @zoharSoul 自己加的,哈哈哈
    anguiao
        12
    anguiao  
       2020-08-06 22:28:25 +08:00
    一般不轻易用 setTimeout(),前天花了 3 个小时,就为了把一个 setTimeout()换掉。
    最后解决了,很开心,哈哈。
    zhdsuperm
        13
    zhdsuperm  
    OP
       2020-08-06 22:40:41 +08:00
    @anguiao 哈哈哈 看到我以前的样子,╮(╯▽╰)╭ 换了 react 整个人都变好了
    maomaomao001
        14
    maomaomao001  
       2020-08-06 22:51:03 +08:00
    文章挺长的

    vue 的 Composition API 根本不是 无状态组件了 (和 react function component + hook 一样) , 不能把它归类为无状态下

    而且, 状态管理 redux 也不是唯一唯一方案 , react + mobx 的组合其实也不少

    代码行数的比较也比较可笑 ...


    不过,我怎么感觉是推广文 ?
    maomaomao001
        15
    maomaomao001  
       2020-08-06 22:51:46 +08:00
    @zhdsuperm 为什么不看看 vue 3 Composition API 的起源目的呢
    zhdsuperm
        16
    zhdsuperm  
    OP
       2020-08-06 22:58:22 +08:00
    @maomaomao001 恩恩 起源目的这块我没了解过,Vue 3 可以说实践上没用过,我应该试试,增加对比。不过代码行数这块还是有意义的,同样的功能,少了很多缩进以及括号对维护很有帮助(代码上量后)。当然如果公司把行数作为 KPI 指标的话,那......
    revalue
        17
    revalue  
       2020-08-06 22:58:30 +08:00
    真以为尤雨溪不上 v 站?
    murmur
        18
    murmur  
       2020-08-06 23:06:45 +08:00
    @revalue 尤雨溪刷知乎吧?
    wxsm
        19
    wxsm  
       2020-08-06 23:06:59 +08:00 via iPhone
    再好的框架,配上垃圾程序员也能写出屎来。
    再屎的框架,配上优秀程序员也能写出花来。
    奉劝你们多提高自己的姿势水平,不要整天想搞大新闻。
    murmur
        20
    murmur  
       2020-08-06 23:07:54 +08:00   ❤️ 1
    对于这种东西,我就一句话,以前 jquery 做大项目,现在有了 vue 不行了,是人水了还是矫情了?
    zhdsuperm
        21
    zhdsuperm  
    OP
       2020-08-06 23:08:52 +08:00
    @revalue 我觉得文章写的挺中立的,上来讨论也挺好的,我以前也是喜欢 vue 的写法、入门快而用上 Vue 的
    zhdsuperm
        22
    zhdsuperm  
    OP
       2020-08-06 23:23:54 +08:00
    @wxsm ^_^ 哈哈,别那么严肃,首先 Vue 、React 这两个东西用起来都挺简单的,没什么难度,不觉得会了就很牛逼,其次文章主要是其他角度技术细节上的对比,因为你每做一个新项目,总要回答用 vue 还是 react 的问题吧,文章提到的解耦也是很重要一点,编码要做到无论啥框架,都能适配,而且健壮。最后,垃圾程序员的问题,hr 的角度:他便宜啊!如果他用了某个框架 bug 变少,别人也能维护,这就是增值的部分。
    zhdsuperm
        23
    zhdsuperm  
    OP
       2020-08-06 23:31:08 +08:00
    @Jirajine 只要操作的是一个对象(不是 class 或者 function ),ts 支持都很难变好,因为类型推断必须写在对象上。
    back0893
        24
    back0893  
       2020-08-06 23:34:36 +08:00
    无所谓
    反正我一个后端,react 选择太多.懒得选了
    greg0220
        25
    greg0220  
       2020-08-07 08:22:03 +08:00 via iPhone
    我公司一年前还在用 ng8 。。
    DL9412
        26
    DL9412  
       2020-08-07 09:50:05 +08:00
    你们是来推广这个网站的?

    前两天还看了个帖子,翻新了篇以前老早看过的 vue,react 对比文章来拱火,也是发的这个网站
    ruanimal
        27
    ruanimal  
       2020-08-07 09:54:46 +08:00
    头一次见给自己“加精”的
    zhdsuperm
        28
    zhdsuperm  
    OP
       2020-08-07 13:48:16 +08:00
    @DL9412 推下自己写的文章(原创,写了半天的文章),和宣传下公司网站,没毛病呀老铁。
    maomaomao001
        29
    maomaomao001  
       2020-08-07 16:15:30 +08:00
    @zhdsuperm 是的 ,我很早以前 vue2 , 后来一直用的 react , hook 也是早早使用上了,
    vue 3 没正式用过 , 但是 vue 3 的 hook 其实也有一些特色的 , 并非那么不值得一提 ,
    然后,回到代码行数 , 当然是代码越少问题越少啊,
    我指的是 typescript 明明是类型自动推到的 , 组件内部的状态的类型,根本没有人会放在外面写一遍 , 甚至 99% 的情况 , props 的类型也不需要拿出来在外面写 ...
    vue3 也是 ...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2620 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:26 · PVG 19:26 · LAX 03:26 · JFK 06:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.