React常用hook

39 阅读1分钟

1. useState

用来在函数组件里存数据,数据变了会自动更新视图。

场景:计数器、开关状态(如弹窗显示/隐藏)。
Vue 对照:类似Vue 的 refreactive

2. useEffect

处理副作用(比如调用接口、订阅事件),比如依赖数据改变时、挂载时执行。

场景:数据请求、事件监听、手动修改 DOM。
Vue 对照:Vue 的 watchonMounted/onUpdated

**useEffect依赖数组为空:**相当于 Vue 的 onMounted,只在组件挂载时执行一次。

3. useContext

跨组件传值,避免一层层 props 传递。

场景:组件深处、跨组件传值。
Vue 对照:Vue 的 provide/inject

4. useReducer

复杂版的 useState,适合逻辑复杂的状态管理。

场景:表单多字段管理、购物车状态。
Vue 对照:Vuex 或 Pinia 的 store。

5. useMemo

缓存计算结果,避免重复计算。

场景:性能优化(如过滤大型列表)。
Vue 对照:Vue 的 computed

6. useCallback

缓存函数,避免子组件不必要的重新渲染。

场景:父组件传递函数给子组件时优化性能。

useMemo 和 useCallback 的区别:useMemo 缓存值,useCallback 缓存函数。

7. useRef

存一个不会触发渲染的变量,或直接操作 DOM。

常用场景:输入框焦点控制、保存定时器 ID。
Vue 对照:Vue 的 ref