React Hooks 详解
Hooks 是 React 16.8 引入的新特性,让你在函数组件中使用状态和其他 React 特性。
常用 Hooks
useState
管理组件的局部状态。
const [state, setState] = useState(initialState);
useEffect
处理副作用,如数据获取、订阅或手动更改 DOM。
useEffect(() => {
// 副作用代码
return () => {
// 清理代码
};
}, [dependencies]);
useContext
消费 Context 值。
const value = useContext(MyContext);
自定义 Hooks
创建可重用的状态逻辑。
function useCounter(initialValue = 0) {
const [count, setCount] = useState(initialValue);
const increment = () => setCount(count + 1);
const decrement = () => setCount(count - 1);
const reset = () => setCount(initialValue);
return { count, increment, decrement, reset };
}
Hooks 规则
- 只在顶层调用 - 不要在循环、条件或嵌套函数中调用 Hooks
- 只在 React 函数中调用 - 只在 React 函数组件或自定义 Hooks 中调用