React学习笔记(五)-- 函数组件

92 阅读1分钟

一、函数组件存在问题以及如何解决

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 的返回值

总结:能用函数组件就用函数组件