首页 > web前端 > js教程 > 正文

为什么应该避免在 JSX Props 中使用箭头函数或绑定?

Susan Sarandon
发布: 2024-11-06 21:49:02
原创
359 人浏览过

Why Should You Avoid Using Arrow Functions or Bind in JSX Props?

避免在 JSX Props 中使用箭头函数或绑定

为什么这是一种不好的做法:

不鼓励在 JSX props 中使用箭头函数或绑定,因为它会对性能产生负面影响。原因如下:

  • 垃圾收集效率低下:在每个渲染上创建函数会在组件卸载时触发不必要的垃圾收集。
  • 渲染由于浅层比较: 即使 prop 值保持不变,PureComponent 和在 shouldComponentUpdate() 中使用shallowCompare 的组件也会重新渲染,因为每次都会重新创建内联函数 prop。

示例:

不带内联箭头功能:

<Button onClick={() => console.log('clicked')} />
登录后复制

按钮不会重新渲染,除非其其他道具发生变化。

带内联箭头功能:

<Button onClick={this.handleClick} />
登录后复制

每次组件渲染时,即使处理程序保持不变,按钮也会重新渲染。

最佳实践:

为了避免这些性能问题,请在 JSX 之外声明箭头函数或绑定方法:

class Button extends React.Component {
  handleClick = () => {
    // Handler logic
  };

  render() {
    return <button onClick={this.handleClick} />;
  }
}
登录后复制

以上是为什么应该避免在 JSX Props 中使用箭头函数或绑定?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!