网易首页 > 网易号 > 正文 申请入驻

Copilot生成的代码让47%React项目埋雷

0
分享至


GitHub Copilot每10秒生成一次代码,但没人统计过其中有多少在"看似正确"的瞬间已经埋好了雷。React开发者Avery最近扒出了一组高频模式——AI把"计算值"当成"状态值"存进useEffect,代码能跑,逻辑全歪。

那个让组件渲染两次的"标准写法"

打开任意一个AI参与过的React项目,你大概率会看到这个模式:

const [total, setTotal] = useState(0) useEffect(() => { setTotal(items.reduce((sum, i) => sum + i.price, 0)) }, [items])

Copilot输出这段代码时毫无犹豫。没有警告,没有红线,只有一种"这很合理"的平静。但问题恰恰藏在平静里——total根本不是状态,它是一次计算的结果。items变一次,total就被强制重新算一次,中间还要经过useState的setter触发额外渲染。

组件渲染了两次。状态永远慢半拍。一个毫无存在必要的useEffect,只是因为AI没见过"不该这么写"的规则。


AI的"肌肉记忆"是怎么形成的

Copilot不是不懂React,它是太懂"看起来像React的代码"长什么样。它的训练数据里有成千上万条useState配useEffect的组合,于是遇到任何需要"某个值"的场景,默认伸手就是这对组合拳。

它不理解"派生状态"(derived state)这个概念。不会问"这东西该存还是该算",只会生成"看起来 plausible 的代码"。

而plausible和correct之间,隔着整个调试周期的距离。

正确的写法其实更简单:

const total = items.reduce((sum, i) => sum + i.price, 0)


没有useState,没有useEffect,每次渲染直接算。一次渲染,单一数据源,零冗余状态。代码行数少了,心智负担也少了,但AI不会主动给你这个——除非你的prompt里明确写了"禁止useEffect处理同步计算"。

useEffect滥用正在批量制造"技术债惊喜"

Avery在排查中发现,useEffect的误用是AI生成React代码里最高频的陷阱之一。不是因为开发者不懂,而是因为Copilot"伸手就来"——派生状态要用,同步逻辑要用,根本不该是effect的东西它全往里塞。

每一个AI没有明确约束的领域,都是它即兴发挥的空间。而即兴的useEffect逻辑在真实代码库里会指数级叠加:A组件的effect触发B组件重渲染,B的effect又改C的状态,调试时你看到的永远是"最后一次渲染的结果",而不是"为什么会多渲染三次"。

Avery为此整理了一份20项检查清单,专门用来识别这类结构性弱点。不是教你写prompt,而是让你在跑AI生成的代码之前,先扫一遍雷区。

同一套Copilot,有人用它写出一堆定时炸弹,有人用它稳定输出。差距不在工具,在规则。

你最近一次review AI代码时,有没有发现某个useEffect其实根本不该存在?

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
罗永浩杨笠事件。

罗永浩杨笠事件。

贴小君
2026-03-28 13:34:08
张雪峰的灵车细节让人泪奔,车尾挂着一棵竹子,上面系着他的衣服

张雪峰的灵车细节让人泪奔,车尾挂着一棵竹子,上面系着他的衣服

魔都姐姐杂谈
2026-03-28 18:18:48
太原火灾3人遇难23人受伤,火灾为啥这么快、伤亡这么多?

太原火灾3人遇难23人受伤,火灾为啥这么快、伤亡这么多?

靠山屯闲话
2026-03-29 08:08:09
办公室不雅行为!摄像头忘关视频曝光,这些人把“体面”丢了一地

办公室不雅行为!摄像头忘关视频曝光,这些人把“体面”丢了一地

就一点
2026-03-29 00:19:23
我国曾仅500多只!15年江苏农民工捡走死的,说要“回家炖一锅”

我国曾仅500多只!15年江苏农民工捡走死的,说要“回家炖一锅”

云景侃记
2026-03-28 19:30:10
伊朗伊斯兰革命卫队称美以大学将成“合法袭击目标”

伊朗伊斯兰革命卫队称美以大学将成“合法袭击目标”

新京报
2026-03-29 07:26:06
“特朗普被内塔尼亚胡坑了”,万斯把锅甩得这么响 | 京酿馆

“特朗普被内塔尼亚胡坑了”,万斯把锅甩得这么响 | 京酿馆

新京报评论
2026-03-28 19:40:57
“黄毛的爹,酗酒的妈”,上海三口之家火了,只有孩子看着不叛逆

“黄毛的爹,酗酒的妈”,上海三口之家火了,只有孩子看着不叛逆

妍妍教育日记
2026-03-29 07:40:03
泽连斯基:美方正施压乌克兰撤出顿巴斯

泽连斯基:美方正施压乌克兰撤出顿巴斯

每日经济新闻
2026-03-28 23:40:02
中国斩钉截铁,就是要日本赔罪,军官侵馆第4天,防卫大臣行动了

中国斩钉截铁,就是要日本赔罪,军官侵馆第4天,防卫大臣行动了

老谢谈史
2026-03-29 01:20:29
美媒:美国全国范围爆发反对特朗普政府集会,预计超900万人参与,或为“美国历史上规模最大”抗议活动

美媒:美国全国范围爆发反对特朗普政府集会,预计超900万人参与,或为“美国历史上规模最大”抗议活动

环球网资讯
2026-03-29 09:27:36
55岁退休后跑遍大江南北,我才懂:退休旅游,其实没多大意义

55岁退休后跑遍大江南北,我才懂:退休旅游,其实没多大意义

蝉吟槐蕊
2026-03-28 00:05:01
50岁老虎伍兹被捕!特朗普难过:他是我很亲密的朋友 了不起的人

50岁老虎伍兹被捕!特朗普难过:他是我很亲密的朋友 了不起的人

念洲
2026-03-28 21:44:38
1-0爆冷澳大利亚队!恭喜中国队,久帅成功复仇!对手点球玩大了

1-0爆冷澳大利亚队!恭喜中国队,久帅成功复仇!对手点球玩大了

大秦壁虎白话体育
2026-03-28 17:32:26
深圳电动自行车源头管控首月:拘留56人、关停门店20家

深圳电动自行车源头管控首月:拘留56人、关停门店20家

南方都市报
2026-03-28 13:52:21
送别张雪峰!汪涵亲自到场,张睿托人送花,学生拿录取书赶赴悼念

送别张雪峰!汪涵亲自到场,张睿托人送花,学生拿录取书赶赴悼念

离离言几许
2026-03-28 15:02:25
上海有海拔7140厘米的高山!攀登小心高反,北京网友一语逗乐全网

上海有海拔7140厘米的高山!攀登小心高反,北京网友一语逗乐全网

火山詩话
2026-03-29 07:53:29
张雪峰追悼会现场!天不亮排长队,妈妈哭得很伤心,汪涵前去送别

张雪峰追悼会现场!天不亮排长队,妈妈哭得很伤心,汪涵前去送别

180视角
2026-03-28 10:03:05
英超大地震!曼城恐扣 60 分直接降级,王朝一夜崩塌

英超大地震!曼城恐扣 60 分直接降级,王朝一夜崩塌

奶盖熊本熊
2026-03-29 04:47:36
长的太漂亮了,真正的珠圆玉润,标准的东方美

长的太漂亮了,真正的珠圆玉润,标准的东方美

生活新鲜市
2026-03-27 07:21:32
2026-03-29 09:44:49
赛博兰博
赛博兰博
专注捣鼓AI效率工具,试图在这个时代留下数字分身的探索者。
382文章数 1关注度
往期回顾 全部

科技要闻

马斯克承认xAI"建错了",11位创始人均离职

头条要闻

牛弹琴:特朗普亲口对沙特说出傲慢的话 全世界不敢相信

头条要闻

牛弹琴:特朗普亲口对沙特说出傲慢的话 全世界不敢相信

体育要闻

全球第二大车企,也救不了这支德甲队?

娱乐要闻

陈牧驰陈冰官宣得子 晒一家三口握拳照

财经要闻

卧底"科技与狠活"培训:化工调味剂泛滥

汽车要闻

岚图泰山X8配置曝光 四激光雷达/华为新一代座舱

态度原创

健康
教育
艺术
旅游
数码

干细胞抗衰4大误区,90%的人都中招

教育要闻

“黄毛的爹,酗酒的妈”,上海三口之家火了,只有孩子看着不叛逆

艺术要闻

毛泽东手笺惊现美国拍卖会,满纸峥嵘往事......

旅游要闻

武汉:一城繁花 全域皆景

数码要闻

小心假冒伪劣硬盘:山寨版三星990 Pro SSD已能伪造读写速度

无障碍浏览 进入关怀版