- 概述
16.8以后得新特性,在不使用class得情况是使用state及react特性。
动机:
组件之间复用的状态逻辑,提供了更好的共享状态逻辑原生路径,无需修改组件结构的情况下复用状态逻辑
使得组件的颗粒度细化,降低组件的维护成本
函数式组件更方便理解,hook可以在非class得情况下使用更多react特性
只能在最外层使用调用hook,不要再循环,条件判断和函数中使用
只能在React函数组件和自定义hook中调用hook
- 概括
State Hook => useStateconst [count, setCount] = useState(0);
Effect Hook => useEffect 给予组件操作副作用得能力(数据获取、订阅或者手动修改过 DOM),与componentDidMount
、componentDidUpdate
和componentWillUnmount
具有相同的用途,每个effect都可以返回一个清除函数,也可以跟第二参数[M]规定只有[M]更新时才执行useEffect(() => {}, [count])
- API
基础Hook
useState
useEffect
useContext
额外的Hook
useReducer
useCallback
useMemo
useRef
useImperativeHandle
useLayoutEffect
useDebugValue
网友评论