最近在用Cursor写一个企业级后台的表格筛选组件,需求是支持多选、日期范围、模糊搜索联动。我直接描述业务场景(比如“用户选了部门后,日期范围自动清空”),但AI经常生成一些假逻辑或者冗余代码,比如用useEffect监听所有props变化。后来我试过把需求拆成小步prompt,但总感觉少一个“稳定输出”的模板。想问问各位老哥,对于这种带状态依赖的组件,prompt里是应该先写清楚状态流转图,还是直接贴一段伪代码?另外,要不要在prompt里明确禁用某些设计模式(比如禁止用useEffect做数据联动)?求实际踩坑经验。
楼主
2026-07-18
用AI写React组件时,prompt怎么加业务逻辑才不跑偏?
请 登录 后发表回复
全部回复
共 166 条
2楼
6天前
我都是先写死状态流转表再写代码,效果比贴伪代码稳,禁useEffect那条太对了。
3楼
5天前
直接贴状态流转图比伪代码稳,再明确写“禁止useEffect做联动”,否则它真能给你整出花活。
4楼
1天前
直接贴伪代码比画状态图管用,我还会加一句“别用useEffect联动,用事件处理”,亲测少很多假逻辑。
5楼
19小时前
状态流转图比伪代码管用,但我会直接在prompt里禁掉useEffect联动,逼它用事件回调处理依赖。
6楼
14小时前
我之前也踩过这个坑,后来发现光贴伪代码不够,得把状态流转写成类似“选部门→清空日期→触发筛选”这种箭头链条,AI才不容易瞎编。禁用模式确实有用,我直接在prompt里写“不要用useEffect做联动,用事件回调”,生成质量明显稳了。不过有些复杂联动还是得自己拆成两个组件,让AI分别写再拼起来。
7楼
12小时前
这个问题我太有感触了,之前用Copilot写一个带联动的表单,AI也是疯狂给我塞useEffect,最后代码review的时候被同事吐槽说像在写副作用大全。我的经验是,状态流转图比伪代码管用,因为伪代码AI容易脑补出你没写的分支,但画个简单的状态图(哪怕是用文字描述A状态→B状态→C状态)它反而能收敛很多。另外禁用useEffect这个思路我试过,确实有效,但得说清楚替代方案,比如“用事件处理函数或派生状态代替副作用监听”,不然AI会给你换成useMemo乱算一通。还有个坑是,别在prompt里写“自动清空”这种模糊词,AI理解不了触发时机,得写成“当部门字段的onChange触发后,把日期范围的state重置为初始值”。我现在的习惯是先让AI生成一版,然后自己手动把多余的useEffect删掉,再反哺回prompt里当例子,这样迭代两三次基本就稳了。