javascript - 自定义 React Hook 是否会导致依赖组件的重新渲染?

标签 javascript reactjs react-hooks

我刚刚创建了一个在内部使用 useStateuseEffect 的自定义 Hook 。

当我将该钩子(Hook)导入另一个 React 函数组件时,将其称为 ComponentA,只要自定义钩子(Hook)中的状态发生变化,ComponentA 就会重新渲染。

当它使用的钩子(Hook)返回新值时,ComponentA 应该重新渲染是否正确?

请参阅代码中的注释,以获取更多问题说明。

代码:

const ComponentA = props => {
  const myValue = useMyValue();

  // COMMENTS:
  // Whenever myValue returns a new value, ComponentA re-renders
  // This in turn will cause the useMyValue() function to run.
  // Seems unnatural with such a circular effect.
  // Is my suspicion unfounded? Is this how it should work?
}

最佳答案

自定义可以简单地视为从功能组件内执行的函数,并且有效地将自定义钩子(Hook)中存在的钩子(Hook)转移到组件。因此,如果自定义钩子(Hook)中的代码直接编写在功能组件中,则通常会导致组件重新渲染的任何更改都会导致重新渲染,即使该钩子(Hook)是自定义钩子(Hook)也是如此。

关于javascript - 自定义 React Hook 是否会导致依赖组件的重新渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56345853/

相关文章:

javascript - react : Rendering a list in reverse order

reactjs - 在 firebase.utils.js 的函数内传递 props

reactjs - socket.io 聊天问题与 react

javascript - 在javascript中显示php数组

javascript - 为什么 React.memo 和 shouldComponentUpdate 不做同样的事情?

javascript - 如何从 bash 控制台运行 Jasmine 测试?

javascript - 如何在 React Hook 中创建一个新的 JSON 对象?

reactjs - 如何将类组件重写为 React Functional?

javascript - 使用 javascript 和 css 自定义下拉框

javascript - express + Jade : render an array of partials