reactjs - React 功能组件 - 对处理程序使用内联函数会影响性能?

标签 reactjs react-hooks react-functional-component

使用类组件时,始终建议不要执行内联匿名函数,因为它不利于性能,即

<input value{this.state.title} 
          onChange={(event) => this.setState({title: event.target.value})} />

您通常必须在渲染方法之外创建一个名为 handleChange 的函数。这意味着每次渲染都不会创建新的内联匿名函数。

这让我想到了功能组件和 useState 等。

功能组件是渲染,所以如果我这样做

[title, setTitle] = useState()

<input value{this.title} 
          onChange={(event) => this.setTitle({title: event.target.value})} />

这与创建函数相同,因为无论如何每次都会创建函数 - 在函数组件中

我知道它可以使用 useCallback Hook 来缓存函数,但它也建议不要过度使用它们,因为 react 速度很快,并且使用 useCallback 实际上对于简单的情况是不好的。

所以,这让我回到了我原来的问题。

在功能组件内部我们应该使用内联匿名函数吗?考虑到在函数组件中创建函数无论如何都会创建。

我认为无论如何都是垃圾收集

有人知道推荐的方法吗?

提前致谢

最佳答案

React Docs - Hooks API Reference 中推荐使用内联箭头函数。 . (见下文)

我认为 useCallback会导致更多的性能影响,然后每次创建一个新函数。

function Counter({initialCount}) {
  const [count, setCount] = useState(initialCount);
  return (
    <>
      Count: {count}
      <button onClick={() => setCount(initialCount)}>Reset</button>
      <button onClick={() => setCount(prevCount => prevCount - 1)}>-</button>
      <button onClick={() => setCount(prevCount => prevCount + 1)}>+</button>
    </>
  );
}

关于reactjs - React 功能组件 - 对处理程序使用内联函数会影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59101930/

相关文章:

javascript - [未处理的 promise 拒绝 : TypeError: undefined is not an object (evaluating 'this.state.result.map' )]

javascript - React Context 不渲染组件

reactjs - React useState 返回具有两种不同条件的假图像

javascript - Next.js - 是否可以使用 next.js 和另一个用于后端应用程序的服务器制作一个应用程序,并且始终有利于 SEO 性能?

reactjs - 在 React Router V6 中将父级 NavLink 显示为事件状态

reactjs - React Function组件使用局部变量设置状态变量V/s

javascript - 意外的 useInterval 和 useEffect 行为

javascript - 钩子(Hook)只能在函数组件体内调用。 (fb.me/react-invalid-hook-call)

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

javascript - 当scrollY不为0时,window.addEventListener不会更新路由更改的状态