前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React篇(028)-如何在 JSX 回调中绑定方法或事件处理程序?

React篇(028)-如何在 JSX 回调中绑定方法或事件处理程序?

作者头像
齐丶先丶森
发布2022-05-12 20:48:31
1.6K0
发布2022-05-12 20:48:31
举报
文章被收录于专栏:前端面试秘籍前端面试秘籍

实现这一点有三种可能的方法: 1. **Binding in Constructor:** 在 JavaScript 类中,方法默认不被绑定。这也适用于定义为类方法的 React 事件处理程序。通常我们在构造函数中绑定它们。

代码语言:javascript
复制
    class Component extends React.Componenet {
      constructor(props) {
        super(props)
        this.handleClick = this.handleClick.bind(this)
      }
    
      handleClick() {
        // ...
      }
    }

2. **Public class fields syntax:** 如果你不喜欢 bind 方案,则可以使用 *public class fields syntax* 正确绑定回调。

代码语言:javascript
复制
    handleClick = () => {
      console.log('this is:', this)
    }
代码语言:javascript
复制
    <button onClick={this.handleClick}>
      {'Click me'}
    </button>

3. **Arrow functions in callbacks:** 你可以在回调函数中直接使用 *arrow functions*。

代码语言:javascript
复制
    <button onClick={(event) => this.handleClick(event)}>
      {'Click me'}
    </button>

**注意:** 如果回调函数作为属性传给子组件,那么这些组件可能触发一个额外的重新渲染。在这些情况下,考虑到性能,最好使用 `.bind()` 或 *public class fields syntax* 方案。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端面试秘籍 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档