V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
PeiXyJ
V2EX  ›  程序员

为什么感觉 React 编写起来比 Vue 复杂很多?

  •  
  •   PeiXyJ · 1 天前 · 7107 次点击

    我在编写一个前端页面,在考虑使用 Vue 和 React 在尝试使用 React 后感觉 React 编写的页面非常的乱,因为太多太多的业务操作都感觉写在了 <Html/> 中而不是和 Vue 一样进行了 脚本 template style 进行拆分,不过我都是 AI 写的,是不是编写的习惯有问题?

    83 条回复    2025-12-19 20:04:02 +08:00
    dushixiang
        1
    dushixiang  
       1 天前   ❤️ 1
    写 React 不要把全部的逻辑放在一个文件里面,抽象成组件再引用进来就没那么乱了
    kongkx
        2
    kongkx  
       1 天前 via iPhone   ❤️ 1
    贴段代码对比看看?让大伙看看你写得怎么样
    NerbraskaGuy
        3
    NerbraskaGuy  
       1 天前
    你说的是 jsx ,实际 vue3 也支持 jsx 的写法只不过不那么普遍
    airqj
        4
    airqj  
       1 天前   ❤️ 10
    自信点,把感觉去掉
    React 就是比 Vue 复杂
    ShaoYuanNuo
        5
    ShaoYuanNuo  
       1 天前
    同样的代码 react 就是比 vue 复杂啊
    livib
        6
    livib  
       1 天前   ❤️ 1
    唯手熟尔
    shintendo
        7
    shintendo  
       1 天前
    是要复杂一些,但不是你说的原因,而是 1 语法糖少 2 心智模型不太传统,至于 SFC 拆分不是什么大区别
    66beta
        8
    66beta  
       1 天前
    习惯就好了,用 React 写就不要留着 vue 的思维了
    cvooc
        9
    cvooc  
       1 天前   ❤️ 4
    react 对团队规范代码管理这些要求高很多, 说好听是百花齐放, 说难听是群魔乱舞.

    光一个状态管理,几个月就蹦出来一个新的宣传更先进解决某某问题. 团队摇摆不定的话,真的会存在"学不动的情况".

    另外一点是代码管理, vue 好一点是至少 template/script/style 三大件互不干扰,新手在不熟悉也容易搞出太抽象的代码.
    react 则像上面说的,非常极其特别容易整出来要么一个超大文件, 要么好好的需求清晰的业务组件拆的稀碎成十几个只有一个引用的文件,完全没人能看懂.
    Aleks
        10
    Aleks  
       1 天前
    React 在理解上确实心智负担会重一些,Vue 更符合直觉好上手一点。但是论生态还是 React 更胜一筹。对大部分个人项目来讲,其实都够用了,都是工具。
    iv8d
        11
    iv8d  
       1 天前
    一个纯手搓,一个有各种各样的规范要求。当年 angular 也是这样,严重影响推广。vue 这点就很吃香,一直在改进优化。
    PeiXyJ
        12
    PeiXyJ  
    OP
       1 天前
    @kongkx 纯 AI 写的就不嫌丑了
    penzi
        13
    penzi  
       1 天前
    因为你 vue 写多了,已经中毒了
    PeiXyJ
        14
    PeiXyJ  
    OP
       1 天前
    @Aleks 主要还是看生态,现在 AI 化了感觉啥都生态绑定用个 VO 竟然不支持 Vue...
    liaohongxing
        15
    liaohongxing  
       1 天前   ❤️ 5
    因为你已经完全适应了 template/script/style 三大件, 你已不适应 jsx, 这就不谈别人乱了。
    visper
        16
    visper  
       1 天前   ❤️ 1
    react 更灵活。对不同的人来说,可能写得很不一样,不同的封装方式啊之类的。写得好的可能会很优雅,但是多数来说,确实会更乱。不要怀疑,就是代码更乱,你看好久看不出来在页面上的点击出现问题的代码可能不知道它封装在哪一个函数里面了。
    PeiXyJ
        17
    PeiXyJ  
    OP
       1 天前
    @liaohongxing 好像是这个道理,直接先入为主了
    ccccccc
        18
    ccccccc  
       1 天前   ❤️ 1
    你们说的 vue 那么简单,那试试一段时间不写 vue ,看看是否需要翻官方文档看语法
    Hilong
        19
    Hilong  
       1 天前
    @ccccccc 还真不用,自从 16 年看了 vue2 的文档,后面升级了 vue3 也只简单看了一下 api 的改动,后面完全不用看文档,本身文档也没啥东西
    wu67
        20
    wu67  
       1 天前 via Android
    vue 更直觉,react 感觉整个文件都在写 js ,部分 html 还要 map 出来...
    okakuyang
        21
    okakuyang  
       1 天前
    vue 生态能和 react 生态比一比吗?感觉就是在捡 react 的剩饭。
    craftsmanship
        22
    craftsmanship  
       1 天前 via Android
    怎么梦回几年前的感觉,,前端都凉透了还在争论 RV 吗🤓
    skallz
        23
    skallz  
       1 天前
    react 写习惯了还好,初学者可能会存在一个问题,就是它的设计哲学不符合大部分人的直觉,比如你修改一个变量,但是你在修改完成后立刻获取它,它并不一定是最新值,而是推荐你用 useEffect 或者 useRef 去拿到最新值
    cfancc
        24
    cfancc  
       1 天前
    确实如此,写 react 累,要干好多活
    crocoBaby
        25
    crocoBaby  
       1 天前
    中小厂写 react 已经找不到工作了
    codek1986
        26
    codek1986  
       1 天前
    主做后端,vue react 都用,感觉还是 react 写起来舒服
    twofox
        27
    twofox  
       1 天前
    写 react 的时候我觉得 vue 很好用,写 vue 的时候我觉得 react 很好用
    knowckx
        28
    knowckx  
       1 天前
    我已经从 react 转 svelte 了 react 还是麻烦
    edisonwong
        29
    edisonwong  
       1 天前
    react 轮子没的说,我遇到很多小众组件基本只有 react 有...难绷
    写 vue 心智成本低
    bbbblue
        30
    bbbblue  
       1 天前
    react 要多拆组件 他的心智负担的确大一点 但其实用习惯了就那几个钩子
    现在 95%的组件和页面都让 AI 写了 自己把控一下组件粒度/复用 处理一下 AI 有时解决不了的循环依赖
    dust2
        31
    dust2  
       1 天前
    @skallz vue 这种也是吧
    QlanQ
        32
    QlanQ  
       1 天前   ❤️ 1
    php 模板时代过来的人,看了 react 那种 用 js 去生成 html 的 方式,看着就难受
    好不容易 php 不用和 html 和 js 混编了,结果 react 来了个 js 去生成 html 的混编
    MJNick
        33
    MJNick  
       1 天前   ❤️ 1
    @ccccccc 是的,vue 时间一长就不记得那些语法糖了。react 就不需要记那么多语法糖和规则,只要你 JavaScript 足够熟练,写 react 很快的,时间长了也不会忘记。
    SkywalkerJi
        34
    SkywalkerJi  
       1 天前
    @QlanQ 每个时代都有自己的 php
    skallz
        35
    skallz  
       1 天前
    @dust2 vue 并不是,vue 你同步修改了 ref 定义的变量后,后续直接取值它一定是最新的,不需要在类似 watch 的钩子里面读取最新值
    vaporSpace
        36
    vaporSpace  
       1 天前   ❤️ 1
    vue 和 react 没啥优劣之分,有点基础的,都是几天就上手了。但是之前找工作有一点特别烦,用 react 的公司是不介意只用过 vue 的,只要基础好的就行。用 vue 的公司一定要招用过 vue 的,我说一天就上手,也不行,hr 那一层就卡死了。可能在有些面试官眼里,用 vue 的门槛很高吧
    kakki
        37
    kakki  
       1 天前
    html js css 混编也是一种高内聚的方式.早期直接内嵌不习惯的原因是因为编辑器弱智,现代编辑器支持个内嵌 HTML 跟喝水一样简单,又不用你人眼 debug.完全就是傲慢与偏见.
    svendson
        38
    svendson  
       1 天前
    react 经常性的一个页面干完全部活儿 哈哈哈
    location123
        39
    location123  
       1 天前
    react 得将组件分的很细 不要在一个文件里 现在一边写 React 一边学 Compose 就很舒服
    dufu1991
        40
    dufu1991  
       1 天前
    别对比 React 和 Vue 了,都没 Svelte 舒服,这是生态不够。不过 AI 时代来了,项目中的组件基本上可以自己写了。
    bgm004
        41
    bgm004  
       1 天前
    @dufu1991 不应该是 solidjs ?
    fizzzzz
        42
    fizzzzz  
       1 天前   ❤️ 1
    后端选手,喜欢 react 的生态,喜欢 vue 的语法。每次想自己折腾啥就很纠结选啥
    dudubaba
        43
    dudubaba  
       1 天前
    react 是写无 html 的 js ,可以理解为任何一个 div 都是一个组件,不分公母。vue 是写 html + js ,公就是公母就是母。
    MJNick
        44
    MJNick  
       1 天前
    @penzi 是这个道理
    HappyAndSmile
        45
    HappyAndSmile  
       1 天前
    @ccccccc 是的,每次很久不写 vue ,就要从其他页面看看抄一下
    Yuunie
        46
    Yuunie  
       1 天前
    React 还好吧,把大概执行原理搞清楚就容易了
    damila
        47
    damila  
       1 天前
    都说 react 下限低上限高,但我工作这么多年就没见过多少高上限的 react 代码,反而经常被刷新下限。当然可能是因为我水平低,没机会和大牛们共事
    ayang23
        48
    ayang23  
       23 小时 56 分钟前
    vue 就是一个加了很多糖的 react ,就看你喜欢不喜欢糖了
    dufu1991
        49
    dufu1991  
       21 小时 35 分钟前
    @bgm004 solid 只是去了虚拟 dom ,语法还是和 React 一样啰嗦。
    DefoliationM
        50
    DefoliationM  
       20 小时 32 分钟前 via Android
    vue 简单是简单,但是写出来代码就一坨,别想维护了。我首选 react ,至少生态好,代码看着干净点。
    DefoliationM
        51
    DefoliationM  
       20 小时 26 分钟前 via Android
    @DefoliationM 不过我是后端,写 vue 给人一种嗯写 HTML 的感觉,代码最后也是混成一坨。个人比较喜欢 react ,和后端比较契合。
    XCFOX
        52
    XCFOX  
       19 小时 36 分钟前   ❤️ 15
    React 是没有 SFC 的,useEffect 是不长眼的,Hooks 的闭包是不通的!全世界这么多开发者写了这么一个 UI 库,怎么写的?我们把状态管理都运到 Zustand 怎么运的?怎么跟 memo 组件沟通的?怎么去跟 Fiber 协调的?天上地下依赖数组无限循环……怎么去做的这些事情?这个经验是无价的。

    我写过 CSS in JS 你写过吗?我服务器让 CVE-2025-55182 挖过矿你挖过吗?我差点被 stale closure 坑死过你死过吗?复杂页面我把 prop drilling 干了你干过吗? NPM 的 Hooks 我吃遍了你吃过吗?我能 Server Component 调 SQL 你会吗?我干了两件之前前端没人干的事,你干了吗?
    zhengfan2016
        53
    zhengfan2016  
       14 小时 6 分钟前
    vue 写多了,我 23 年从 vue 转 react 的第一个月也是各种不适,但是用久了,总能积累出一套合适的方法论,比如怎么抽组件,什么时候适合抽组件,怎么尽可能代码看起来少让组件可维护。而且我现在 react 写多了,我倒是感觉 vue 那个 props 和 emit 有点过分复杂了,像 react 一样多简洁,心智负担也小
    k9982874
        54
    k9982874  
       13 小时 59 分钟前 via Android   ❤️ 2
    面向薪资编程,哪个赚钱用哪个。目前 react 吊打其他所有。
    effort
        55
    effort  
       13 小时 21 分钟前
    @XCFOX 哈哈哈哈 笑死了。
    ulyssess
        56
    ulyssess  
       13 小时 0 分钟前
    2025 年了还在 react/vue
    laved
        57
    laved  
       12 小时 55 分钟前
    作为两个框架都写过的人我真的不敢苟同,vue3 的 watchEffect 啥的副作用函数,照样心智负担不小
    cli007
        58
    cli007  
       12 小时 12 分钟前
    react 肯定要 UI 和 hook 独立啊,公共组件和业务组件独立,结合 redux 管理数据流,一点也不乱,不同水平的人按照这一套也能写出差不多的业务代码
    MEIerer
        59
    MEIerer  
       12 小时 3 分钟前
    是这样的,但用习惯了也还好,而且 AI 友好
    leona723
        60
    leona723  
       12 小时 3 分钟前
    我从开始实习就是 react ,习惯了 react 我还觉得 vue 好麻烦呢 hh
    whypool
        61
    whypool  
       12 小时 2 分钟前   ❤️ 1
    不是
    Angular 连提都没人提了么
    dust2
        62
    dust2  
       12 小时 1 分钟前
    @skallz 给我干懵逼了 你说的对, 无非是 react 的 state 是回调还是 useEffice 中取, 还是 vue2 vue3 同步的获取 dom, 大体上都是相通的, 为了优化性能而异步 批量的更新 dom state, ref 是最新的, dom 不是, 写的多了都 tm 弄叉屁了
    ww2000e
        63
    ww2000e  
       11 小时 34 分钟前
    非专业前端,两个都在已有项目上改过,感觉 react 有点难上手,我看的 react 啥东西都是封装复用,刚接手时候调了半天才理解
    sss393
        64
    sss393  
       11 小时 16 分钟前
    发表一个暴论:觉得 react 难,那就对了,就应该复杂点。省的某些 Java 后端学个 vue ,天天跑我跟前跟我说前端多简单,前端马上要失业了巴拉巴拉的~~
    zficode
        65
    zficode  
       10 小时 51 分钟前
    vue2 确实垃圾,和 ts 结合太差,写的代码都是屎山,后期代码量大了维护麻烦,变量全是 any 。vue3 没用过,不知道
    journalistFromHK
        66
    journalistFromHK  
       10 小时 24 分钟前
    没写过 react,感觉在标签里面写 js 很不舒服,就像在 onclick="console.log()"
    WasteNya
        67
    WasteNya  
       9 小时 48 分钟前 via Android
    @vaporSpace 我筛了上千个简历,大部分都是会 React 的也用 Vue 。用 Vue 的就只用 Vue ,基础一般
    PeiXyJ
        68
    PeiXyJ  
    OP
       9 小时 1 分钟前
    @fizzzzz 我也是后端选手,我现在的感觉和你是一模一样的
    alleluya
        69
    alleluya  
       6 小时 46 分钟前
    @sss393 #64 一个 React 和 Vue 能有多复杂 Java boy 说前端简单的时候 你该甩的 css 而不是 js 的框架
    WashFreshFresh
        70
    WashFreshFresh  
       5 小时 44 分钟前
    老项目用的是 angularJS ,是不是切 vue 的时候能比较丝滑
    duan602728596
        71
    duan602728596  
       5 小时 40 分钟前
    vue 可变不可变,props 默认值,v-model 照样一堆坑,写个组件库就知道了
    zed1018
        72
    zed1018  
       5 小时 27 分钟前
    @skallz #21 最新消息,现在已经推荐不要没事就用 useEffect 了,如果一个变量只是拿来渲染,用就完事了。如果有副作用优先用 useState, useMemo
    Zwying
        73
    Zwying  
       5 小时 25 分钟前
    我单方面宣布 Vue3 是目前最好的 js 前端框架
    shakaraka
        74
    shakaraka  
    PRO
       5 小时 24 分钟前
    angular 哪会吵来吵去哇
    94
        75
    94  
       5 小时 20 分钟前
    其实就是入门的心智负担问题。
    Vue 官方直接给了一个开发套路,以及常用周边库,所以可以很上手和接盘项目。遇到不知道了的东西有一个明确的地方可以找到解答。
    React 因为没有一个官方推荐的套路,所以在上手和接盘的时候容易两眼一抹黑。在没有摸清开发套路之前,遇到的坑也只能在自己在互联网上漫无目的的去检索。
    rrfeng
        76
    rrfeng  
       5 小时 9 分钟前
    @fizzzzz 后端选手左转 angular 去(
    chihiro2014
        77
    chihiro2014  
       4 小时 52 分钟前
    在逻辑管理上,还是 angular 清清爽爽
    liu731
        78
    liu731  
    PRO
       4 小时 49 分钟前
    React 的文档和 Demo 就是一坨,没别的意思纯恶意
    VagabondH
        79
    VagabondH  
       4 小时 28 分钟前
    @liaohongxing 现在这玩意还重要吗,cusror 啥都能解决,写的比我好
    Chuckle
        80
    Chuckle  
       2 小时 48 分钟前
    react 业务逻辑拆 hook 里,但是很难受的就是,业务逻辑往往又是多变多情况的,很可能今天封好,明天别人看不懂或者不好原地改,只能 cv 一个副本拿去用,而且拆得越多,写 props 和传参 n 层就非常麻烦,也不好维护一堆 ts 类型,这个倒是可以用状态管理解决,但那种多个地方用的组件,因为要用 context 隔离状态其实也挺难受的。vue 的话,vsc 插件太卡了,ts 服务经常也挂,一堆堆的语法糖,公共组件 v-model 和 emit 那套处理起来可比 react 麻烦多了,单文件行数爆炸,类型维护也难,但整体还是比 react 写法规范点,毕竟语法糖限制死了,react 里可见到太多把 hook 玩出花活一层套一层的了,我现在拿 vue 的响应式和 react 结合起来玩,写了个类似 valtio 的东西,清爽很多。react 的文档啊,其实能教的也都教了 但保不齐有人玩花活整点 js 里要动脑子的技巧。
    njzy
        81
    njzy  
       2 小时 46 分钟前 via iPhone   ❤️ 1
    @wu67 vue 更符合直觉 认真的吗😂
    Chuckle
        82
    Chuckle  
       2 小时 40 分钟前
    @Chuckle vue 里一堆 any 那是没得救的,emit 的 n 种类型写法,不知道匹配到啥的 function call 参数,没人维护的 inject 类型。reat 里要是一堆 any ,函数泛型慢慢拆,时间问题。自己项目 vue 干得快,多人的公司的项目,必须 react ,但我感觉现在这哥三框架,用着都多多少少有不得劲的地方
    demonzoo
        83
    demonzoo  
       2 小时 20 分钟前
    @wu67 #20
    Vue 还不是要在 template 里面写 v-for ?真就比 map 简单了吗?
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2646 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:24 · PVG 22:24 · LAX 06:24 · JFK 09:24
    ♥ Do have faith in what you're doing.