react antd 就是包了巧克力的屎

2025 年 7 月 22 日
 yuhuij

(首先叠甲,antd 在大部分情况下是很好用的。)最近新项目从 vue 转到 react,all in antd 全家桶,发现很多在 vue 生态 里基础的功能,在 react 生态里就是没有很好的解决方案。比如 antd 表格滚动高度自适应,表格列可拖动。在翻阅 issues 时产生了下图一样的疑惑。所有请教各位大佬对于 antd 表格高度自适应有没有完美的解决方案。顺便贴上 github issues 链接

7948 次点击
所在节点    React
62 条回复
skallz
2025 年 7 月 22 日
@angrylid 阿里的很多开放出来的系统后台就已经很烂了,某些后台,表格文字过长出现省略号,然后鼠标悬浮上去时浮层文字超出屏幕了,看不到完整的文本,向系统负责人反馈,被告知这个没办法文字过长了,想查看文本得导出数据查看,我当时就问做一个换行的文本浮层是什么很难的事情吗?还有就是像 op 提到的表格没法拖动宽度,这个也同样体现在他们的那些后台系统问题中,有些文本比较长,导致表格列宽度过大,想要拖动表格宽度也拖不了导致一个屏幕就只能看两三列数据,在线查看体验极差,必须得导出数据才能看。。。
NerbraskaGuy
2025 年 7 月 22 日
字节也有 react 的组件库 semi ,只是没 antd 火,不知道和 antd 比起来怎么样。
yuhuij
2025 年 7 月 22 日
@gogogo2000 诶,冲着他家的 pro components 去的,深入了解后可能真不如 vue element 的解决方案
yuhuij
2025 年 7 月 22 日
@angrylid 是啊,想着能快速启动项目,结果好多坑。
yuhuij
2025 年 7 月 22 日
朋友们,有没有 react 交流群。因为我还有好多 react 找不到好的解决方案,比如路由跳转滚动条恢复,数据状态缓存,类似 vue 的 keep-alive 。虽然从 vue 到 react 思维要转变,但是真的好多在 vue 里面好用的功能,在 react 生态里找不到好的解决方案。
unhappy224
2025 年 7 月 22 日
@yuhuij 如果能接受 vue 可以看看 vben ,也包括很多了,就是封装的东西有点多
wakarimasen
2025 年 7 月 22 日
@skallz
换行不难,但如果考虑到多语言混排的情况也不会很简单。
当然我觉得他们拒绝你只是觉得没必要,因为你在旁边加个按钮,弹出一个对话框显示所有内容或者拷贝到剪贴板也不是很难的事。
yuhuij
2025 年 7 月 22 日
@unhappy224 本来是想用 vben 的,可是我想着用久了 vue ,换换 react ,开弓没有回头箭,这个项目是必须要继续吃下去了。🥹
qzhai
2025 年 7 月 22 日
用 react 要抛弃掉 vue 那种开发思路,vue 是配置文件型的开发思路,什么功能都给你整好了,你照着文档配置就行,react 这面,你就当是在写 js ,遇到问题就 js 写就行,但是 antd ,怎么说,是想把思路往 vue 上套,但是做不到每个人都满意。
skallz
2025 年 7 月 22 日
@angrylid 反正阿里的很多后台系统,给我的感觉就是非常难用,按理说这些应该是非常非常基础的业务组件交互沉淀,不应该做成这样的才对,给人的感觉就是我功能做出来了,售前能有东西使劲吹就完事,至于好不好用能不能用那就是另一回事了,这种基础组件不应该是各个项目组通用的吗,为何能做到这么差。。。
gogogo2000
2025 年 7 月 22 日
@yuhuij #25 keep-alive 有个实验性的 activity: https://react.dev/reference/react/Activity

路由守卫什么的需要自己写
zombiej
2025 年 7 月 22 日
@gogogo2000 antd 和 rc 都是同一批人写的,rc 抽出来是因为还会用到其他地方,比如 antd-mobile 。
UnluckyNinja
2025 年 7 月 22 日
zepc007
2025 年 7 月 22 日
React UI Library 现在一直用 mantine UI 还有抖音的那个 semi design ,感觉挺不错的
zdx1
2025 年 7 月 22 日
react 好用的表格组件,该用啥
现在我们也是,表格形式的超大表单,性能问题,antd ,tdesign 都使用过,效果都不太理想,现在是 antd 凑合用,这种超大型表单,想支持拖拽列排序,性能极差。卡住了。
dumbass
2025 年 7 月 22 日
yuhuij
2025 年 7 月 22 日
@gogogo2000 实验性的不敢用在生产上...在 github 上找了个库,凑活着用吧
gogogo2000
2025 年 7 月 22 日
@zombiej 是的,实际上 rc 基本上也是蚂蚁的人写的,但是这种套娃的写法使得找实现和做优化修改难度剧增,很多功能都是套了好几层才暴露出来的,需要花很大力气才能搞清楚最终实现
canvascat
2025 年 7 月 22 日
import { useSize } from 'ahooks';

const containerRef = useRef<HTMLDivElement>(null);
const size = useSize(containerRef);
const height = (size?.height || 500) - 120;
return (
<div ref={containerRef} style={{ resize: 'vertical', border: '1px solid #000', height: 500, overflow: 'hidden' }}>
<Table<DataType>
columns={columns}
dataSource={dataSource}
scroll={{ x: 'max-content', y: height }}
/>
</div>
);
mmdsun
2025 年 7 月 22 日
所以现在 vue \react 有什么推荐的框架用吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/1146763

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX