我只是将其发布为一种更简单的方式来理解 acc。对我的努力。归功于 Yangshun Tay 的帖子,它几乎涵盖了所有内容。
安装组件的 API 调用
代码:
useEffect(() => {
// here is where you make API call(s) or any side effects
fetchData('/data')
}, [] ) /** passing empty braces is necessary */
因此,当组件创建(挂载)和销毁(卸载)时,使用useEffect(fn,[])
空 args[]
会fn()
触发一次,而不依赖于任何值。
专家提示:
此外,如果您return()
对此有所了解,fn
那么它将componentWillUnmount()
与类组件的生命周期相同。
useEffect(() => {
fetchData('/data')
return () => {
// this will be performed when component will unmount
resetData()
}
}, [] )
某些值更改时的 API 调用
如果您希望在某些值更改时调用 API,只需将该变量(存储值)传递到useEffect()
.
useEffect(() => {
// perform your API call here
updateDetails();
},[prop.name]) /** --> will be triggered whenever value of prop.name changes */
这将确保无论何时prop.name
更改值,都会触发钩子中的函数。
还要注意:这个钩子也会在组件被安装时被调用。因此,那时您的 name 值可能处于初始状态,这在您看来是一种意外。因此,您可以在函数中添加自定义条件以避免不必要的 API 调用。