React常用Hooks
2024 年 5 月 3 日 星期五(已编辑)
/ ,
19
摘要
React常用Hooks包括useState、useEffect、useContext、useReducer、useCallback、useMemo、useRef和useImperativeHandle。这些Hooks可以帮助更方便地管理组件的状态、副作用和生命周期。React社区可能会继续添加新的Hooks或改进现有的。
这篇文章上次修改于 2024 年 5 月 7 日 星期二,可能部分内容已经不适用,如有疑问可询问作者。
阅读此文章之前,你可能需要首先阅读以下的文章才能更好的理解上下文。
React常用Hooks
useState: 用于在函数组件中添加状态。它返回一个包含当前状态值和更新状态的函数的数组。
const [state, setState] = useState(initialState);
useEffect: 用于在组件渲染后执行副作用操作,比如数据获取、订阅和手动修改 DOM。
useEffect(() => { // 副作用操作 return () => { // 在组件卸载或下一次渲染前执行的清理操作 }; }, [dependencies]);
useContext: 用于访问 React 上下文的值。
const contextValue = useContext(MyContext);
useReducer: 用于复杂的状态逻辑,接受一个状态和一个分发函数,返回新的状态以及触发状态更新的函数。
const [state, dispatch] = useReducer(reducer, initialState);
useCallback: 用于缓存回调函数,以防止在每次渲染时创建新的回调函数。
const memoizedCallback = useCallback(() => { // 回调函数 }, [dependencies]);
useMemo: 用于缓存计算结果,以防止在每次渲染时重新计算。
const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
useRef: 用于在渲染之间保留可变对象的引用,常用于访问或修改 DOM 元素。
const myRef = useRef(initialValue);
useImperativeHandle: 用于自定义暴露给父组件的实例值。
useImperativeHandle(ref, () => ({ // 暴露给父组件的方法或属性 }), [dependencies]);
这只是一些常见的 React Hooks,React 社区可能还会添加新的 Hooks 或改进现有的。使用这些 Hooks 可以更容易地管理组件的状态、副作用和生命周期。