我希望react组件中的一行代码只在组件安装时执行,而不是在重新渲染时执行。在一个有状态的组件中,我会在componentDidMount
/componentWillMount
方法中执行此操作。
如何使用钩子完成此操作?
我相信您正在寻找反作用useEffect
钩子。它是componentDidMount、componentDidUpdate和componentWillUnmount的钩子替换。你可以这样使用它:
useEffect(() => {
console.log("only executed once")
}, [])
请注意,空数组作为第二个参数,它定义了这种效果的依赖关系。在这种情况下,您希望没有依赖项,这样效果就不会再次执行。
这里有一篇关于如何用钩子替换以前的生命周期函数的好文章。
//类似于componentDidMount和componentDidUpdate:useEffect(((=>{},[](
React文档。使用效果挂钩的挂钩。->https://reactjs.org/docs/hooks-effect.html