hooks
1.为什么要使用hooks?
react中function组件是没有自己的状态和生命周期的。如果你想在不编写class组件的情况下使用state和生命周期方法,可以通过hooks。
2.在hooks使用useState,是函数式组件有状态。
useState本身是一个函数,来自于react,有参数和返回值。
数组的第一个值是state(当前状态),第二个值是函数,这个函数可以修改和设置状态。

使用useState写一个累加器


3.function组件多状态

4.较为复杂状态

5.useState传递函数。

4.function组件实现生命周期(useEffect)。
4.1class生命周期
- componentDidMount:在这个周期里面,组件是第一次渲染完成的,dom节点已经生成了。
- componentDidUpdate:在这个周期里面实现更新。
- componentWliiUnmount:在这个周期里,我们可以清除定时器和卸载一些监听事件。
4.2useEffect:函数式组件是没有生命周期的,就可以使用useEffect来代替。我们可以把useEffect看做组件加载、组件更新、组件卸载的三个生命周期方法的组合。

默认情况下,useEffect会在第一次渲染之后和每次更新之前都会执行.useEffect每一次渲染(不管是第一次或者是更新)完都会去执行

useEffect第一个参数为函数,后面跟着数组,数组传入的是你想要改变状态的依赖。如果数组为空,那么useEffect只有在第一次渲染的时候才执行。

useEffect组件卸载

5.useRef
useRef:第一次渲染的时候创建一个对象滞后,之后重新渲染的时候,如果发现对象对象已经创建过,不再创建新的ref对象,useRef的性能要比createRef好一些。

6.useReducer:再hooks中,可以为函数式组件提供类似的Redux的功能,类似于vuex都是提供状态管理的.官方提供两种state管理:useState,useReducer.
useReducer接收两个参数,第一个参数reducer函数,第二个参数是初始值
