Skip to content

State Normalization

狀態正規化(扁平化)

01你是不是遇到這個 / THE SYMPTOM

我的資料是一坨深層巢狀的陣列裡面包物件、物件裡又包陣列,要更新其中一筆就要層層複製超痛苦,找一筆資料還得整個跑迴圈。

↑ 如果你點頭了,你要的關鍵字就是 State Normalization

02這是什麼 / DEFINITION

把巢狀、有重複的資料攤平成「用 id 當 key 的查找表」結構,讓每筆資料只存一份、靠 id 互相參照,更新和查找都變單純。

03什麼時候用 / WHEN TO USE

當你的 state 是深層巢狀、同一筆資料在好幾個地方重複出現、或更新一筆要寫一長串巢狀展開時(前端 store、列表+詳情頁共用資料)。

04怎麼跟 AI 說 / HOW TO ASK

直接複製這句、貼進 Claude Code / Cursor / Copilot / ChatGPT:

我的 state 是深層巢狀又有重複資料,更新很痛苦,幫我把它 normalize 成 byId 查找表加 ids 陣列的扁平結構,更新時只動對應 id 那筆。
05常見坑 / WATCH OUT

正規化是用「記憶體換更新/查找的單純」,小型一次性資料不用硬套會過度工程。要顯示成巢狀清單時記得寫一層 selector 把它組回去。

06相關的詞 / RELATED