最近刚开始用Cursor和GitHub Copilot,写React项目时发现一个问题:我让它帮我生成一个带表格搜索和分页的组件,它每次都会把表格行渲染和样式全部写死,还重复生成类似的useState和useEffect。我明明在prompt里说了“复用已有的Table组件”,但它好像完全忽略上下文。想问下老哥们,是我表述方式有问题,还是这些工具本身就不太适合封装复杂业务组件?有没有什么技巧能让AI更“听话”一点?
楼主
2026-07-30
用AI编程工具写React组件,总是生成重复代码,是我prompt写得不对吗?
请 登录 后发表回复
全部回复
共 124 条
2楼
1天前
别太指望上下文,直接贴出Table组件的代码片段,再明确说“只改这些props,别动样式”会好很多。
3楼
1天前
这问题太真实了,AI写demo级代码还行,一旦牵扯到已有业务抽象就经常犯傻。我试过把Table组件的props和用法直接贴进prompt里,再明确说“只改数据逻辑,别动渲染结构”,效果会好一点,但偶尔还是抽风。我觉得本质是它没存住你的项目上下文,尤其Cursor这种多文件关联性其实没那么强,别指望它真能理解“复用”这种抽象指令,不如给它看具体代码片段来得直接。
另外如果你把需求拆得更碎,比如先让它只生成筛选状态管理,再单独生成分页逻辑,反而比让它一口气写整个组件靠谱,出错率低不少。我一般遇到这种重复代码就直接接受,然后自己快速重构,毕竟工具主要图个起步速度,真要精细封装还是得靠人脑。
4楼
1天前
光靠prompt没用,得把项目里的Table组件路径和用法直接贴给它,再让它只改逻辑别动样式。
把老代码片段丢进对话里当上下文锚点,比单纯说“复用”管用多了。
5楼
13小时前
说实话你这情况太典型了,我一开始用Copilot写业务组件也这样。不是prompt写得不对,是这俩工具本质上是“续写器”不是“架构师”,你让它生成整个组件,它当然倾向于把能想到的都写全,这样代码看起来完整,但压根没考虑复用。我后来摸索出的办法是,先在项目里把那个Table组件用注释或者空函数声明出来,然后在prompt里直接给个具体调用例子,比如“基于以下API写分页逻辑: