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

感觉不少前端框架 版本升级似乎很不喜欢搞兼容?

  •  
  •   bbbblue · 8 小时 21 分钟前 · 840 次点击

    现在技术栈主要是 js/ts + react/nextjsjava + sb

    前段时间把自己之前的项目,跑在 java11sb2,升级到了 java21sb3,除了 lombok 要跟着升级,再加上 javaEE 包改成 JakartaEE,其他都兼容了,没遇到太大问题。 然后把几个 IO 任务的线程池改成 virtual thread, 测试没问题就发上去了,感觉比较丝滑。


    但是前端这边的库/框架要升级感觉就特别蛋疼。。。。

    首先为什么要升级呢,因为想用新功能和特性,而且还在不断写的项目偶尔要用一些新依赖,框架版本太老可能会和新依赖本身产生冲突,emmmm ,但是反过来,升太快可能其他库还没准备好...也会各种不兼容。


    去年学了 remix,项目里要用。v2 版本,future flags 开了大部分。
    然后看到官方说不会有 v3 版本了,v3 和 react router v7 合并...
    我:???

    后来真合并了,升级需要打开所有 v2 的 future flag ,然后用 codemod 可以完成部分工作,剩下一堆有问题的地方自己找 issue 解决了,大量的包名从 remix 改成了 rr

    rr 的 v7 开始说自己有多种模式,你可以用框架模式(其实就是remix), 库模式(之前 rr 的方式), 现在库模式好像又分成了两个。 rr 算是不兼容老熟人了,只能说 remix 无了。

    然后 remix 又突然宣布 remix v3 正在开发。
    我:???
    一看,这个 v3 是完全新的东西,甚至不基于 react 了,官方说是完全不一样的东西。
    彻底无语了,完全不一样的东西你叫啥 v3 。

    Next.js 的情况稍微好一点点,至少这个框架是持续性的,不像 Remix,有点绝后的感觉。
    Next.js 13 的时候出了 App Router, 然后建议从 Page Router 迁移到 App Router,官方提供了并存和逐步迁移的方案。

    但也基本是“软弃用”了,新特性全是 App Router 的。官方也通过文档不断告诉你,你正在使用的技术已经过时了,再不迁移,就享受不到框架发展的红利,逐渐会被边缘化。这东西本质上也是一种“不搞兼容”的策略,用未来的发展前景逼着你进行重构。

    这两个库算是用的人不少了吧,就感觉很神奇,为什么就不喜欢搞兼容呢,感觉好像创新大于一切似的,动不动就搞个大改动😂,有点像苹果,我升级系统你不跟是吧,那你 app 别跑了呗😂。

    emmm...可能这就是 windows 思维和苹果思维?

    15 条回复    2025-10-01 10:23:02 +08:00
    wj2061
        1
    wj2061  
       7 小时 58 分钟前 via iPhone
    维护成本太高了,来源项目一般人力资金有限,当然怎么自己爽怎么来。
    Belmode
        2
    Belmode  
       7 小时 56 分钟前
    因为前端升级的“代价”和后端不可比,后端大多数情况是要求更稳定的,而前端迭代更快速。要求就不一样。
    huangzhiyia
        3
    huangzhiyia  
       7 小时 36 分钟前 via iPhone
    react 向后兼容算是拔尖的了,其余的就像你说的那样。甚至一个 1.1.x 的小版本更新都会引起问题。挺无语的
    Perry
        4
    Perry  
       7 小时 0 分钟前 via iPhone
    不要因为 remix 一个个例就下结论
    twig
        5
    twig  
       6 小时 28 分钟前
    @Perry 这结论其实也没错
    StevenRCE0
        6
    StevenRCE0  
       6 小时 18 分钟前
    开发团队越稳定,用户(开发者/公司)基数越大,对兼容就会越上心。这就是 nextjs 很多人觉得是石也会赤的原因😂
    facebook47
        7
    facebook47  
       5 小时 8 分钟前 via Android
    毕竟前端娱乐圈
    zhengfan2016
        8
    zhengfan2016  
       1 小时 45 分钟前 via Android
    大版本升级本来就不兼容啊,vue2 升级 vue3 不也不兼容?相比之下 nextjs 就改了个 approuter 算好的了,你总不能要求开发者做 approuter 相关的新功能的时候也给 pagerouter 做一份吧,2 倍的工作量,你给它们打钱吗?
    yb2313
        9
    yb2313  
       1 小时 44 分钟前
    如果是这样的话,新项目新版本,老项目老版本。或者一开始选的时候就选升级注重向后兼容的包,react 的兼容就做得挺好
    kkwa56188
        10
    kkwa56188  
       1 小时 12 分钟前
    追求短平快, 先上了再说,
    兼容要做得好开发者难受, 兼容做不好用户难受. 两者相权取其轻, 死道友不死贫道
    darkengine
        11
    darkengine  
       1 小时 10 分钟前
    前端确实需要花 30%的精力解决兼容或者说升级的问题,这还只是 web 的,app 端的苹果或者谷歌弃用个 API ,修改个权限,又是一堆工作量。
    gnosis23
        12
    gnosis23  
       1 小时 7 分钟前
    大版本有 breaking change 也算合理吧
    DefoliationM
        13
    DefoliationM  
       17 分钟前 via Android
    语义化版本就是这样,大版本更新本来就允许不兼容,比如 Python2 -> Python3 ,这不是 Windows 思维和苹果思维,你这种大概是半瓶水响叮当思维。
    crackidz
        14
    crackidz  
       16 分钟前
    没有什么长期思考,全是短视行为。觉得还行就上了,实际上越用越坑发现积重难返于是重新挖一个新坑
    Bijiabo
        15
    Bijiabo  
       9 分钟前
    有没有可能不是因为不喜欢。。。就好像我赚钱没马云多,可能不是因为我不喜欢
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2149 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:32 · PVG 10:32 · LAX 19:32 · JFK 22:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.