概念:接收一个包含命令式、且可能有副作用代码的函数
使用时有几种使用方式:
1.不带第二个参数。执行时机:初始执行,每次更新之后都要执行。
可以模拟 componentDidmount + componentDidUpdate
useEffect(() => {
// 副作用函数的内容
})
2.带第二个参数,参数是空数组。执行时机:只执行第一次。
模拟 componentDidMount
useEffect(() => {
// 副作用函数的内容
}, [])
使用场景:1 事件绑定 2 发送请求获取数据 等。
3.带第二个参数(数组格式),并指定了依赖项。执行时机:(1)初始执行一次 (2)依赖项的值变化了,执行一次
useEffect(() => {
// 副作用函数的内容
}, [依赖项1,依赖项2,....]) // 这里的依赖项就是组件中定义的状态
4.依赖项为空,没有具体的副作用函数,有副作用函数的清理函数
模拟:componentWillUnMount
useEffect(() => {
return () => {
// 副作用函数的清理函数,模拟 componentWillUnMount
}
}, [])