useEffect的作用是:
useEffect会在每次组件render之后,根据依赖变动来决定是否执行(触发一个副作用)。
四种产生副作用的时机:
- 每次
render后执行:不提供第二个依赖项参数。比如useEffect(() ⇒ {})。 - 仅第一次
render后执行:提供一个空数组作为依赖项。比如useEffect(() ⇒ {}, [])。 - 第一次以及依赖项发生变化后执行:提供依赖项数组。比如useEffect(() ⇒ {}, [deps])。
- 组件
unmount后执行:返回一个回调函数(用于清理上一次副作用的结果)。比如useEffect() ⇒ { return () ⇒ {} }, [])。