[好文加精] 为什么我们放弃了 Vue? Vue 和 React 深度对比 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhdsuperm
V2EX    前端开发

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

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

    我使用 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 整个人都变好了
        14
    maomaomao001  
       2020-08-06 22:51:03 +08:00
    文章挺长的

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

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

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


    不过,我怎么感觉是推广文 ?
    maomaomao001
    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  
    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     Solana     2345 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 10:56 PVG 18:56 LAX 03:56 JFK 06:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86