React 中最常見的幾個需求是:
- 渲染一組列表
- 綁定點擊事件
- 表單數據與組件狀態之間的綁定
受控表單綁定是理解表單交互的關鍵之一。
📍什么是受控組件?
在 React 中,所謂“受控組件”,指的是表單元素(如 <input>
)的值被 React 的 state 控制著。
狀態(state)和視圖(input)形成一個雙向綁定:
state 綁定到 input 的 value 屬性
input 變化后,通過 onChange 修改 state
也就是說,用戶輸入的值不是直接改變 input,而是改變了 state,input 的 value 再隨著 state 一起更新。
🛠 使用步驟
1. 準備一個 React 狀態值
const [value, setValue] = useState('')
這一步很常規:先準備一個 state,初始值設為空字符串。
2. 把 state 綁定到 input 的 value,再用 onChange 更新它
<inputtype="text"value={value} // 顯示內容 = React 中的 valueonChange={(e) => setValue(e.target.value)} // 每次輸入觸發更新
/>
這個寫法其實就是雙向綁定的本質。
📖 小結(寫給自己看的)
- 表單受控綁定核心就是 value + onChange,不能少。
value={state}
是讓 input 的值跟隨 React 狀態。onChange={(e) => setState(e.target.value)}
是把用戶輸入的值塞回 state。- 如果不加
value
,input 的值就不受 React 控制,是“非受控組件”。
雖然這段代碼很短,但本質上已經是 React 數據驅動視圖的典范了。
表單、搜索框、評論區……幾乎所有輸入型組件都離不開這一套。
下一步,我可能會整理一下:
- 多個 input 怎么管理?(用一個 state 對象)
- 復雜表單用
useReducer
管理 - 用
ref
實現非受控表單場景
但無論是哪種方式,這一段寫法是核心基礎。
理解清楚之后,再復雜的場景也只不過是組合和抽象。