最近在试着用Cursor帮忙写一个带表格筛选和图表展示的后台页面,我本想着让它帮我生成一个简单的useState + useEffect组合就行。结果它直接给我塞了useMemo、useCallback,甚至还有个useSyncExternalStore,我查了下文档才勉强看懂。问题是,我项目里其实数据量不大,用户也就几十个人,真有必要上这些优化吗?还是说AI只是习惯性地堆代码?我现在有点纠结:是该跟着AI走,学一下这些新hook,还是坚持自己原来的写法,保持代码简单?有没有遇到过类似情况的朋友,你们一般怎么处理?
用Cursor写React组件时,AI总爱加一堆我没见过的hook,该不该信它?
全部回复
共 8 条说实话,我也遇到过类似情况,Cursor有时候确实会过度优化,尤其在你项目规模不大的时候。我个人倾向先按自己熟悉的写法来,等真出现性能瓶颈了再去考虑useMemo这些,毕竟代码可读性对后期维护更重要。不过借这个机会了解一下useSyncExternalStore倒也不亏,小项目里试错成本低,就当练手了。
数据量小就别硬上那些hook,AI有时为了炫技把简单问题复杂化了。
说实话我也遇到过,Cursor有时候确实喜欢炫技,小项目没必要上useSyncExternalStore这种大招。我的做法是先让它改回简单的实现跑通功能,等真有性能瓶颈再考虑优化,毕竟代码可读性对团队更重要。不过趁机学学新hook倒也不亏,理解原理后下次遇到复杂场景就能灵活判断了。
说实话我也踩过这个坑,AI有时候确实喜欢炫技,30个人的后台真没必要上useSyncExternalStore。我的做法是先让它改成简单版本能跑起来,等后面确实遇到性能瓶颈了再考虑优化,毕竟代码可读性对团队协作更重要。而且说真的,你自己能看懂并维护的代码,比那些花里胡哨的优化有价值多了。
说实话,我最近也用Cursor写了不少组件,和你遇到的情况一模一样。它特别喜欢往代码里塞useMemo和useCallback,哪怕只是一个简单的列表渲染。我觉得这个得看场景——如果你项目数据量小、用户少,那确实没必要为了所谓的“性能优化”把代码搞得复杂,自己写个简单的useState + useEffect反而更清晰易读。AI之所以这么干,大概率是因为它训练数据里大量工程实践都是这样写的,它没有感知你的实际规模,只是习惯性堆“最佳实践”。不过换一个角度看,如果你对useSyncExternalStore这些新hook不太熟,这倒是个低成本学习的机会——把它的代码跑起来,看看实际效果,再对比自己写的简单版本,慢慢就能判断哪些优化是必要的。我现在一般会先让它按自己的思路写,然后手动删掉那些明显冗余的优化,保留对性能真正有帮助的部分。总之别盲目信AI,也别完全不用,把它当成一个会给你建议的同事就好。
我最近也遇到了同样的问题,Cursor有时候确实会过度优化,像useSyncExternalStore这种在小项目里基本用不上。我的做法是先看它生成的代码能不能正常运行,能用的话就先用着,但不会无脑全盘接受,尤其是那些看不懂的hook会手动删掉。等有空了再回头研究这些hook,算是一种被动学习吧,毕竟项目简单的时候没必要给自己添乱。
说实话我最近也在用Cursor写内部工具,遇到一模一样的情况。它有时候确实像是为了秀技术栈而堆hook,尤其是useSyncExternalStore,小项目根本没那必要。我的做法是先看它生成的逻辑是不是真的有性能隐患,如果只是几十条数据的表格和图表,原生state加个useEffect完全够用,硬上memo和callback反而让代码可读性下降。不过有些场景AI的判断其实有道理,比如表格筛选如果涉及复杂计算,useMemo能避免不必要的重渲染,这个可以学一下。我的原则是:先理解它为什么要用,再决定要不要删,不要无脑信也不要无脑删。另外我觉得你如果项目不赶,花半小时把那些陌生hook的文档翻一翻,以后写复杂组件时心里就有底了。
小项目真没必要上那些,代码简单好维护比啥都强,等以后真遇到性能瓶颈再优化也不迟。