我无法放手的那段代码
来源:dev.to — 2026-09-17
📋 概述
一个「20 分钟能修完」的 bug:改筛选条件时页码没重置,用户停在第 4 页盯着空表格。作者加了一个 useEffect 就修好了,但在提 PR 前多看了一会儿代码,发现筛选状态同时活在 URL 和组件本地 state 里,手速快一点就会出现下拉框与请求不一致。于是他删掉本地状态、把 URL 参数变成唯一真相来源,又合并了重复的查询构造逻辑——修一个 bug 变成了一场停不下来的重构。
🔑 核心要点
- 最小修复能让页面不坏,但同一份数据有两份状态迟早会引发更严重的 bug。
- 把 URL 参数作为唯一真相来源:读用 useSearchParams,写用 router.replace。
- 有些 bug 没人报过,只是因为没人点得足够快——它们依然真实存在。
- 重复的查询构造逻辑是下一次不一致的温床,顺手要合并掉。
💡 金句
同一份数据有两个真相来源,正是那种最终会导致比最初那个 bug 严重得多的问题的东西。
👍 0
👎 0
← 返回 dev.to 首页