406 - 《React Hooks CheatSheet》
发布于 2024年1月22日
State
1、useState()
,声明一个状态变量。
const [age, setAge] = useState(42);
2、useReducer()
,声明一个状态变量,使用 reducer 函数更新状态。
const [state, dispatch] = useReducer(reducer, { age: 42 });
Context
1、useContext()
,读取和订阅 context。
const theme = useContext(ThemeContext);
Effect
1、useEffect()
,同步外部系统。
useEffect(() => {
const unsubscribe = socket.connect(props.userId);
return () => {
unsubscribe();
};
}, [props.userId]);
2、useLayoutEffect()
,类 useEffect 但在浏览器重绘之前触发。
useLayoutEffect(() => {
// 读取 DOM 布局
}, []);
3、useInsertionEffect()
,CSS-in-JS 库用来注入样式。
useInsertionEffect(() => {
// 注入样式
}, []);
Performance
1、useCallback()
,缓存函数。
const handleClick = useCallback(() => {
doSomething(a, b);
}, [a, b]);
2、useMemo()
,缓存值。
const value = useMemo(() => {
return computeExpensiveValue(a, b);
}, [a, b]);
3、useTransition()
,不阻塞用户交互的状态更新。
const [isP