我应该在组件中使用一个还是多个useEffect?

我有一些副作用要应用,并且想知道如何组织它们:

  • 一次性使用
  • 或几个useEffects

在性能和体系结构上有什么更好的选择?

回答:

您需要遵循的模式取决于您的useCase。

,您可能遇到以下情况:在初始安装期间需要添加事件侦听器,并在卸载时对其进行清理,而在另一种情况下,则需要清理特定的侦听器并在prop更改时将其重新添加。在这种情况下,使用两个不同的useEffect更好地将相关逻辑保持在一起,并具有性能优势

useEffect(() => {

// adding event listeners on mount here

return () => {

// cleaning up the listeners here

}

}, []);

useEffect(() => {

// adding listeners everytime props.x changes

return () => {

// removing the listener when props.x changes

}

}, [props.x])

在某些状态或道具在一组中改变时,可能需要触发API调用或其他副作用。在这种情况下,一个useEffect具有相关值进行监视的个人应该是一个好主意

useEffect(() => {

// side effect here on change of any of props.x or stateY

}, [props.x, stateY])

第三种情况,当您需要对不同的值进行更改时采取不同的操作。在这种情况下,请将相关比较分为不同的useEffects

useEffect(() => {

// some side-effect on change of props.x

}, [props.x])

useEffect(() => {

// another side-effect on change of stateX or stateY

}, [stateX, stateY])

以上是 我应该在组件中使用一个还是多个useEffect? 的全部内容, 来源链接: utcz.com/qa/436354.html

回到顶部