最近开始尝试用Cursor辅助写业务代码,主要就是React+TypeScript。我给它很具体的prompt,比如“实现一个带搜索和分页的用户列表”,它确实能跑,但每次都会额外塞进来好多东西——像是自定义hook、memo、useCallback、抽象出来的api封装……我其实只需要一个能用的简单列表就够了。
用Cursor写React组件,为什么总生成一堆用不上的复杂逻辑?
全部回复
共 65 条这问题挺常见的,我一般会在prompt里直接加一句“别加任何优化,就用最简单的写法”,效果还行。其实它默认就是往“生产级代码”方向靠,什么memo、useCallback全给你安排上,反而把逻辑搞复杂了。我后来干脆先让它写最糙的版本,跑通了再自己按需重构,比一上来就堆一堆抽象省心多了。你也可以试试在.cursorrules里限制一下,别让它自作主张搞封装。
确实有同感,Cursor特别爱过度设计,感觉它训练数据里全是那种“最佳实践”文章。我一般会在prompt后面加一句“不要用memo和useCallback,不要抽hook,单文件写完”,效果会好很多。还有个办法是让它先给最简版本,你再按需让它加东西,比一上来就生成一大堆好控制。
我也遇到过这种情况,感觉Cursor默认把每个需求都当成生产级项目来写。其实可以在prompt里直接加一句“别用useCallback和memo,不要抽hook,所有逻辑写在一个组件里”,它基本就会老实很多。我现在习惯先让它出最简版本,跑通了再按需加优化,不然一开始就被那一堆抽象绕晕。
我也遇到过这种情况,Cursor好像默认你是在写生产级代码,动不动就给你套一堆优化。后来我在prompt里直接加一句“别用useCallback和memo,不要抽象api层,一个文件搞定”,它就老实多了。感觉它训练数据里全是那种“最佳实践”文章,所以总想表现得很专业。其实简单需求就给简单方案,过度设计反而增加维护成本。
这个现象我也遇到过,感觉跟Cursor的训练数据有很大关系。它大概是从大量开源项目里学的,那些项目本身就喜欢把东西拆得很细,什么都要抽象一层,结果它默认就觉得你也需要这套架构。其实你只要在prompt里明确加一句“不要额外抽象,保持单文件,不需要useCallback和memo”,它基本就会照做。我现在的习惯是先把需求压到最小,再一点点让它加东西,而不是一上来就让它自由发挥。另外它特别喜欢搞api封装那层,有时候我直接说“数据就写死在组件里”,它才会老实。说到底这类工具是偏向“展示能力”而不是“贴合场景”,你得主动帮它收着点。