一、函数组件存在问题以及如何解决
1、函数组件没有state
可以通过 useState 解决
2、函数组件没有生命周期
可以通过useEffect可以解决
二、useEffect
useEffect(fu,执行条件)
1、模拟 componentDidMount
useEffect(()=>{console.log('use Effect')},[])
// []数组代表只执行一次
2、模拟componentDidUPdate
useEffect(()=>{console.log('use Effect')},[n])
// [n] 表示[] 里面的值(n)变化的时候执行
3、模拟componentWillUnmount
useEffect(()=>{
//...
return()=>{
console.log('组件销毁了')
}
})
// useEffect return一个函数,就是销毁时候触发的函数
4、模拟shouldComponentUpdate
使用React.memo 和 useMemo 可以解决
5、模拟 constructor
函数组件执行的时候,就相当于constructor
6、 模拟 render
函数组件的返回值 就是render 的返回值