我只是将其发布为一种更简单的方式来理解 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,[])
空参数作为[]
使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 调用。