useState:定义state的数据,参数是初始化的数据,返回值两个值1. 初始化值,2. 修改的方法
useEffect:副作用函数,顾名思义,副作用即只有使用过后才会产生副作用
- 当作生命周期来使用: 第二个参数如果没写的话,页面一更新触发,compoentDidMount compoentDidUpdate
- 第二个参数如果空数组的话,只执行一次,compoentDidMount
- 数组中跟某些变量,当作监听器来使用,监听数据的变化,
- useEffect是一个副作用函数,组件更新完成后触发的函数
- 如果我们在useEffect 返回一个函数的,组件被销毁的时候触发
useMemo:用来计算数据,返回一个结果,监听数据的变化,第二个参数就是监听的数据,具有缓存性
useMemo和useEffect 相比较来说,useMemo 是组件更新的时候触发生命周期
useMemo是怎么做性能优化的?
当父组件向子组件组件通信的时候,父组件中数据发生改变,更新父组件导致子组件的更新渲染,但是如果修改的数据跟子组件无关的话,更新子组件会导致子组件不必要的DOM渲染,是比较消耗性能的,这个时候我们可以使用useMemo或者memo做组件的缓存,减少子组件不必要的DOM渲染
useCallback:当父组件向子组件传递函数的时候,父组件的改变会导致函数的重新调用产生新的作用域,所以还是会导致子组件的更新渲染,这个时候我们可以使用useCallback来缓存组件
useRef:相当于createRef的使用,创建组件的属性信息
useContext:相当在函数组件中获取context状态数的内容信息
useReducer:useReducer是用来弥补useState的补不足, 可以把数据进行集中式的管理,单独处理数据的逻辑信息