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

被 antd 惯坏了,别的组件库用的很难受,大家有这种感觉吗?

  •  1
     
  •   asen001 · 1 天前 · 3677 次点击

    我本人一直用 antd 开发,最近有点审美疲劳想找点新鲜玩意。 试了一圈英文社区推荐的组件库( shadcn mantine chakra 等),功能上都不如 antd 方便,不说太复杂的功能,异步关闭确认框这种常见的功能都得自己封装,不然就得哼哧哼哧写一大坨。 开发后台 dashboard 应用,除了 antd 还有别的更好的选择吗?

    51 条回复    2025-02-27 00:41:42 +08:00
    yiqiao
        1
    yiqiao  
       1 天前
    在用这个,也是海外的
    https://www.naiveui.com/en-US/
    zhoumin9602
        2
    zhoumin9602  
       1 天前
    英文社区的组件都是这样吧,就类似 react 一样,只给你提供基础的功能,想要实现稍微复杂的功能,就要自己去实现。 国内的一般都是功能齐全,除了 antd 不还有很多其他组件吗,字节的 https://arco.design/ ,https://www.naiveui.com/
    murmur
        3
    murmur  
       1 天前
    开发 dashboard 我们都用帆软的
    murmur
        4
    murmur  
       1 天前
    @yiqiao 图森公司爆雷了,我怕这 ui 撑不下去了,我们也在用
    qW7bo2FbzbC0
        5
    qW7bo2FbzbC0  
       1 天前
    react95
    Ayanokouji
        6
    Ayanokouji  
       1 天前   ❤️ 1
    @yiqiao
    @zhoumin9602
    op 发的是 react 区,而且上面的框架也是 react 的,你们推荐个 vue 的。。。
    XTTX
        7
    XTTX  
       1 天前
    shadcn 一出来就用到现在, 第一次听到这种槽点。
    yiqiao
        8
    yiqiao  
       1 天前
    @Ayanokouji antd 也有 Vue 的哈哈哈,没注意 React 区
    那就 google 家的 https://mui.com/ 但我感觉都不如 antd 的
    Jaosn
        9
    Jaosn  
       1 天前
    没有,不得不说 antd 就是标杆
    yhxx
        10
    yhxx  
       1 天前   ❤️ 4
    同感
    虽然 antd 问题也很多,但是国外的那些真的。。。
    还有很多人跟风狂吹那几个 shadcn 、radix 的,我很怀疑他们有没有真正拿来做过复杂一点的项目
    我同意它们提出了全新的理念,甚至有可能引领了未来的方向
    但是对日常 CRUD 来说,antd 一把梭下班回家了,你还在那折腾各种 unstyled 组件,加各种 variant ,然后发现基础功能还得自己补
    hyh0u0
        11
    hyh0u0  
       1 天前 via Android   ❤️ 1
    mantine 不错
    bestie
        12
    bestie  
       1 天前   ❤️ 1
    @XTTX 但是我不得不赞同 OP 的观点,之前看到 shadcn 就觉得非常喜欢这种简约的风格,开新项目的时候尝试了下,结果一个表单给我整不会了,真的什么都要自己封装,得用 react-hook-form ,得用 zod ,里面的 item label control 拆得细细的,不得不说确实灵活,但是写业务搞起来确实麻烦了点,特别是新开坑,遂放弃了继续用 antd
    zhwithsweet
        13
    zhwithsweet  
       1 天前
    XTTX
        14
    XTTX  
       1 天前   ❤️ 1
    @bestie
    1.composition 是 shadcn 之前就被提倡的方式。习不习惯看个人,国外的项目都这么写. 好处就是风格统一和重复利用。
    2. 你说的 Form 用到 react-hook-form, zod, 我看来是优点. validation 和各种 form 的状态, 不是单个 ui lib 能解决的。
    3. component 都在你自己的 src 里,自己愿意怎么改就怎么改。 我用 antd 月历,想改个当天的红点,找半天 api, 网上说的版本 api 还都不一样。
    4. shadcn 弄明白一次,下次就让 AI 写了。 有代码可以参考,不然 AI 还要去猜各式各样的 api.
    XTTX
        15
    XTTX  
       1 天前
    @yhxx "跟风狂吹" "复杂一点的项目", 你都这么说了,那也确实。
    daliusu
        16
    daliusu  
       1 天前
    antd 实际也还是自己二次封装一批更集成化的组件更好使
    loryyang
        17
    loryyang  
       1 天前
    我作为一个后端,偶尔写写前端,不得不说,antd 真好用,非常傻瓜
    johnnyNg
        18
    johnnyNg  
       1 天前   ❤️ 1
    Torpedo
        19
    Torpedo  
       1 天前
    是你习惯 antd 那套 api 了吧。之前国内一些组件库开发的时候就会设计和 antd 类似的 api
    asen001
        20
    asen001  
    OP
       1 天前
    @Torpedo 所以有种被惯坏了了的感觉
    asen001
        21
    asen001  
    OP
       1 天前
    @XTTX #7 如果细细打磨产品,用这个可能合适。而且默认的主题太素了,领导一看就不行
    XTTX
        22
    XTTX  
       1 天前
    @asen001 https://www.pomocal.com/ 肯定不能直接用 shadcn 默认颜色,css 和 tailwind 里设置一下就行了。整体风格上能达到统一。
    sleepm
        23
    sleepm  
       1 天前
    semi 字节的
    chesha1
        24
    chesha1  
       1 天前
    @XTTX #7 shadcn 生态差 antd 和 mui 太多了,而且官方更新缓慢,功能不行是事实,不适合大部分写业务的
    joetao123
        25
    joetao123  
       1 天前
    在 ChatGPT 的加持下,类似 shadcn/ui 和 tailwindcss 的组合用来起很舒服,灵活度很大,大模型支持也很好,搭配 v0.dev 体验更上一层楼。
    我之前也是从 antd+umi 转过来的,现在更喜欢用 shadcn/ui+tailwindcss+vite 的组合。这是用这个组合做的一个 demo: https://xryder.cn
    XTTX
        26
    XTTX  
       1 天前
    @chesha1 都已经是事实, 那还有啥好说的. 给个 demo 让我学习学习。
    zhengfan2016
        27
    zhengfan2016  
       1 天前
    弱弱的问一下,antd 是不是 bug 很多,这个月面试碰到一个主用 vue3 的面试官,它问我用 antd 有没有碰到什么 bug ,我回答没有,它说它用 antd 碰到的 bug 很多,真的是这样吗
    zhengfan2016
        28
    zhengfan2016  
       1 天前
    promise 关闭确认不难吧,这个自己封一下 50 行内就解决了,我的习惯就是自己封。

    至于其他的我没碰到场景,也不知道 antd 比 shadcn 有什么优势。

    说实话,我感觉我有点被 shadcn 这些 tailwind ui 库惯坏了,切换其他 ui 库就完全不会改组件样式了
    zhengfan2016
        29
    zhengfan2016  
       1 天前
    @chesha1 哥们,你们用 mui 一般怎么改样式的,就比如把下拉框的 rounded 改成 12px ,border 边距 2px ,水波纹去掉,按设计稿的样式 100%还原那种,我之前试过在 style 里改,有时加了 important 都不能覆盖掉 mui 的原来的样式,想办法覆盖样式很费时间。
    chesha1
        30
    chesha1  
       1 天前
    @XTTX #26 没有 demo ,但是看一眼官方就知道生态差距了,没什么好争论的。我唯一用的 react 组件库就是 shadcn/ui ,虽然用,但是感觉确实是玩具
    chesha1
        31
    chesha1  
       1 天前
    @XTTX #26 打错字了,“官方”应为“官网”
    XTTX
        32
    XTTX  
       1 天前
    @chesha1 生态这个词高级啊。
    yhxx
        33
    yhxx  
       1 天前
    @zhengfan2016 这是面试技巧了

    下次可以这样回他:我上个月遇到了 Antd 里 Message 组件的静态方法无效的问题,起初我以为是 Context 丢失的问题,因为静态方法并不会消费上下文,它会独立于当前 React 生命周期,balabala ,但是随后验证发现不是这个问题,深入 Antd 源码发现是 ReactDOM.render 方法没有成功,但是前几天还是正常的,随后深入了解发现 React19 中 react-dom 调整了 balabala 。。。随后扯一段 createRoot 、hydrateRoot 看看能不能唬住他。
    也要说一下我的临时解决方案是 balabala ,长久方案是 xxxx
    还可以继续锁依赖版本,pnpm 之类的再扯一段,这面试时间一共就一小时,不就耗掉了一大半了

    只是随便举个例子,不一定严谨,不能直接说没遇到过呀,这就没法聊下去了


    至于 antd 本身的 bug ,直接去 issue 区看看就知道了
    996jiucai
        34
    996jiucai  
       1 天前
    antd 用的人多,虽然有之前的圣诞节事件。但是大家还是在用的。
    用的人多,就是一些比较明显的 bug 不会有。如果你图新鲜用那种人少的库,自己做项目还行。真用到公司项目上面,就很麻烦,不是功能不完整,就是有些基础 bug 。大家就是上个班而已,怎么省事怎么省心怎么快,怎么来。要是想造轮子,下班自己造去。
    Mithril
        35
    Mithril  
       1 天前   ❤️ 1
    antd 的好处就是各种常见功能都有,非常适合领导一拍屁股,“你看看那谁家的 xxx 功能,对就要个那样的玩意”,这种开发模式

    缺点就是你想要做个别人家没有的功能就开始头疼了,折腾半天总也调不对的时候就还不如找个啥都没有的框架从头弄。
    foufoufm
        36
    foufoufm  
       1 天前
    @murmur 请教一下是帆软的 bi 吗?
    DCNGAWE
        37
    DCNGAWE  
       19 小时 39 分钟前
    https://semi.design/ 这个不错 抖音的
    julio867
        38
    julio867  
       18 小时 58 分钟前
    早几年用过 AntDesign 的 vue 版本~
    比较了阿里、腾讯、抖音、饿了么等的 UI 框架,最后感觉抖音的 semi-design 的 UI 是我喜欢的风格,所以最后就用在我自己开发的后台管理系统~
    真正用起来发现,如果只是满足简单的 CRUD 是可以用的,但如果考虑到更好的用户体验和交互,就需要做二次封装,甚至需要自己开发新的组件~
    而且 semi 的问题是,它不是面向社区使用的,而是优先满足抖音自己内部的需要,所以官方也一直不出 Pro 脚手架~
    另外,作为前端开发者,我越发觉得一个东西越“通用”就越“复杂”~
    xingguang
        39
    xingguang  
       17 小时 41 分钟前
    以前用的 antd 比较多,现在用 mui ,是在是感觉很多地方不方便,mui 修改组件的默认样式有好多种办法,还有不同的优先级,一不小心就被覆盖了优先级了,更可恨的是 mui 组件的样式被人在全局的 css 定义中修改了而且加上了 important ,导致很多时候会被这个 important 覆盖,挺烦人的
    wzzx
        40
    wzzx  
       17 小时 25 分钟前
    material ui 自定义比 antd 好
    zbowen66
        41
    zbowen66  
       16 小时 10 分钟前
    @XTTX #12 连个多选框都没有,单选框也不支持搜索(更别提远程搜索了),得用交互差很多的 Combobox 才能实现。或者是用 popover+input ,这个组合也是一堆问题。当然也可以抄别人实现好的,如果什么都要自己想办法,那 shadcn 作为组件库的意义是什么?灵活和强大不可兼得,人生苦短,我站 antd
    zbowen66
        42
    zbowen66  
       16 小时 7 分钟前
    @wzzx #38 我要不是用过我真信了
    cuzfinal
        43
    cuzfinal  
       15 小时 40 分钟前
    https://www.heroui.com/ 应该比 shadcn 强点,用着更省心
    wzzx
        44
    wzzx  
       15 小时 28 分钟前
    wzzx
        45
    wzzx  
       15 小时 28 分钟前
    @zhengfan2016 1.修改全局下拉框样式 2.sx 里修改
    IamUNICODE
        46
    IamUNICODE  
       15 小时 17 分钟前
    从 vuetify 转到 antd ,感觉耳目一新
    XTTX
        47
    XTTX  
       14 小时 12 分钟前
    @zbowen66 辣眼睛...
    raphaelsoul
        48
    raphaelsoul  
       13 小时 23 分钟前
    @murmur naive ui 怎么了?
    murmur
        49
    murmur  
       12 小时 55 分钟前
    @raphaelsoul naiveui 不是图森公司搞的么,以前搞卡车自动驾驶,后来不行又在做游戏,然后广州工作室 2 月也出问题了
    zbowen66
        50
    zbowen66  
       6 小时 36 分钟前
    @XTTX #45 丧失语言能力了吗?辩都不辩了?
    esee
        51
    esee  
       4 小时 59 分钟前 via Android
    @murmur 啊?什么情况,我后面项目都上他了,可别出事了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:40 · PVG 05:40 · LAX 13:40 · JFK 16:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.