类组件使用生命周期来完成业务逻辑,而函数式组件使用react hooks来完成业务逻辑。
常见的react hooks:
① const [state1,setState1]=useState (initVal)
状态管理,不能使用if语句
② useEffect(func,[ 依赖 ] ) 一般用于网络请求
[ ]里面是依赖,只有当依赖改变时,才会触发回调函数
当依赖是空数组时,表示一旦有更新,就触发执行回调函数
③ useReducer (reducer,initState )
可以代替useState,同时跟redux很类似(复杂状态管理使用redux,简单状态管理可以用useReducer)
④useContext跨级组件通信(祖孙组件通信)
如果使用props从父组件一级一级传给孙子组件,那么中间的组件虽然不需要这些数据,也得接收他们,这是不必要的!这时可以使用useContext实现跨组件传递
④自定义Hooks
必须以use开头
用来封装一个被好几个组件使用的一段逻辑
⑤useRef 组件引用 ,可以拿到dom节点的引用
跨组件使用dom,要用forwordRef封装
⑥两个性能优化的钩子函数useCallback和useMemo(不常用)