????????在 React 中,defaultChecked
/checked
?和?defaultValue
/value
?是用于處理表單元素初始值和受控值的屬性對。區別在于表單元素是否受 React 組件狀態控制。
1.?defaultValue
- 作用:設置表單元素的初始值(僅在首次渲染時生效)。
- 特點:
- 只在組件首次掛載時生效,后續狀態變化不會影響它。
- 適用于非受控組件。
import React from 'react';function UncontrolledInput() {return (<div><input type="text" defaultValue="Initial value" /></div>);
}export default UncontrolledInput;
輸入框首次渲染時會顯示?"Initial?value",但后續用戶輸入不會通過?React?狀態管理。
2.?value
- 作用:控制表單元素的當前值(受 React 狀態控制)。
- 特點:
- 必須與?
onChange
?事件處理程序一起使用,以更新 React 狀態。 - 適用于受控組件。
- 必須與?
import React, { useState } from 'react';function ControlledInput() {const [inputValue, setInputValue] = useState('');return (<div><inputtype="text"value={inputValue}onChange={(e) => setInputValue(e.target.value)}/></div>);
}export default ControlledInput;
?輸入框的值由?inputValue?狀態控制,用戶輸入會通過?onChange?更新狀態。
3.總結?
屬性對 | 適用場景 | 是否受 React 狀態控制 | 是否需要?onChange |
---|---|---|---|
defaultChecked | 非受控組件(初始值) | 否 | 否 |
checked | 受控組件 | 是 | 是 |
defaultValue | 非受控組件(初始值) | 否 | 否 |
value | 受控組件 | 是 | 是 |