# react之hook
- Hook 是 React 16.8 的新增特性。它可让你在不编写 class 的情况下使⽤用 state 以及其他的 React 特性。
# hook的优点:
- Hook 使你在⾮ class 的情况下可以使用更多的 React 特性
- 可以在组件之间复用状态逻辑
- 完全可选的,100% 向后兼容的,Hook 不包含任何破坏性改动
- 可以将组件拆分为更小的颗粒度,更小的函数(⽐如设置订阅或请求数据),⽽并⾮强制按照生命周期划分,方便维护管理
# Hook使用规则
- 只在最顶层使用 Hook,不要在循环,条件或嵌套函数中调用 Hook
- 不要在普通的 JavaScript 函数中调用 Hook,
- 在 React 的函数组件中调用 Hook
- 在自定义 Hook 中调用其他 Hook
# ⾃定义Hook
- 自定义Hook是一个函数,其名称以 “use” 开头,函数内部可以调用其他的Hook
- 当我们想在两个函数之间共享逻辑时,可以提取到自定义Hook
# useState
- useState,返回一个数组,第一个参数是state,第二个参数是执行函数,可以去修改state,返回一个数组的设计理念,命名灵活
# useEffect
- useEffect 可以让你在函数组件中执行副作用操作,数据获取,设置订阅以及手动更改 React 组件中的 DOM 都属于副作⽤
#
- useContext,在函数组件中快速的获取context
- useReducer,与useState类似,但是可以处理更复杂的state,reducer中分担来一部分状态逻辑
- useCallback,缓存函数
- useMemo,缓存参数
- useRef,在函数组件中使用引用ref
- useImperativeHandle,结合forwardRef使用
- useLayoutRef,与useEffect基本一样,区别,同步异步
← react源码 react项目经验总结 →