绑定事件的写法

通常我们会在类里面使用

class App extends React.Component {
  constructor() {
    super();
    this.state = {
      n: 0
    };
  }
  addN(){
    this.setState({
      n: this.state.n + 1
    });
  };
  render() {
    return (
      <div className="App">
        <button onClick={()=>this.addN()}>+1</button>
        {this.state.n}
      </div>
    );
  }
}

来绑定事件addN,但是这样写太麻烦了,经过es6的升级后可以这样写

class App extends React.Component {
  constructor() {
    super();
    this.state = {
      n: 0
    };
  }
  addN = () => {
    this.setState({
      n: this.state.n + 1
    });
  };
  render() {
    return (
      <div className="App">
        <button onClick={this.addN}>+1</button>
        {this.state.n}
      </div>
    );
  }
}

把addN变成一个箭头函数去使用,使得其的this不会因为onClick改变
当我们点击button的时候,实际上是进行了一个button.onClick.call(null,event)的操作,但是由于我们把addN变成了一个箭头函数,所以其的this不会被call改变,这在这里是一个好处,所以以后我们就这样写方便多了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 源站:http://fengyuanchen.github.io/viewer/ 应用: html: 源码上是正常...
    羊绘霖阅读 10,891评论 0 2
  • 前言 面试官出很多考题,基本都会变着方式来考察this指向,看候选人对JS基础知识是否扎实。读者可以先拉到底部看总...
    若川i阅读 4,809评论 0 10
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 10,195评论 0 5
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,912评论 1 11
  • ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加...
    gtt21阅读 1,697评论 0 0

友情链接更多精彩内容