如何检测组件是否会使用 react 钩子进行更新?



React 钩子提供了在没有依赖的情况下模拟生命周期方法componentDidUpdateuseEffect的可能性:

useEffect(() => {
// componentDidUpdate
});

如何检测某些道具是否要使用反应钩子进行更新?

我需要在一些更改之前执行一些代码。

每当组件重新渲染时,都会调用没有依赖项的useEffect。这就像componentDidMountcomponentDidUpdate的结合

但是,如果您希望跟踪特定的道具更改,则可以将其添加到dependency array of useEffect

useEffect(() => {
// called on change of props.somename as well as initial render
}, [props.somename]);

另请查看以下帖子,了解有关使用 useEffect 模拟生命周期方法以及仅在更新时执行 useEffect 的更多详细信息

反应钩子只在更新时使用效果?

函数组件中的 ReactJS 生命周期方法

附言您可以根据需要向依赖项数组添加多个值

如果你试图模仿componentWillReceiveProps的行为,你可以很容易地把你的逻辑放在组件的主体中:

function MyComponent(props) {
// do stuff with props (it's like componentWillReceiveProps)
return (...);
}

你不需要钩子。

请记住,useEffect 在组件使用这些 prop 渲染之后运行,而不是之前

newProps -> MyComponent is called -> DOM updated -> useEffect called

相关内容

  • 没有找到相关文章

最新更新