美文网首页
React事件处理

React事件处理

作者: 留白_汉服vs插画 | 来源:发表于2018-12-18 16:04 被阅读14次

React事件处理方式主要有三种。(虽然网上还有其他方法,可是我懒啊。其实三种就够用了、)

关于this的讲解详见之前的文章:3-3 作用域和闭包-this

1、使用箭头函数

render(){
    return(
        <button onClick={(event)=>{console.log(this.state.number);}}></button>
    )
}

箭头函数中this总指向当前组件的实例对象。如果函数的逻辑复杂,可以把函数给封装成组件的一个方法。

render(){
    return(
        <button onClick={(event)=>{this.handleClick(event);}}></button>
    )
}
handleClick(event){
    这里定义函数体
}

2. 使用组件方法

直接将组将的方法赋值给元素的事件属性,同事在累的构造函数中,将这个方法的this绑定到当前对象。

constructor(props){
    super(props);
    this.state={number:0};
    this.handleClick = this.handleClick.bind(this);
}

render(){
    return(
        <button onClick={this.handleClick;}}></button>
    )
}
handleClick(event){
    这里定义函数体
}

或者像下面这样写

constructor(props){
    super(props);
    this.state={number:0};
    // this.handleClick = this.handleClick.bind(this);这一行就不要了
}

render(){
    return(
        <button onClick={this.handleClick.bind(this);}}></button>
    )
}
handleClick(event){
    这里定义函数体
}

但是这样写法,每次render都会创建一个心函数。不过在需要传入额外参数的时候,这么写就有用处了。

constructor(props){
    super(props);
    this.state={number:0};
    // this.handleClick = this.handleClick.bind(this);这一行就不要了
}

render(){
    return(
         //这里需要给函数传入额外的参数
        <button onClick={this.handleClick.bind(this,item);}}></button>
    )
}
handleClick(event){
    这里定义函数体
}

3. 属性初始化语法

ES7中会自动为class中定义的方法绑定this,例如:

constructor(props){
    super(props);
    this.state={number:0};
    // this.handleClick = this.handleClick.bind(this);这一行就不要了
}

render(){
    return(
         //这里需要给函数传入额外的参数
        <button onClick={this.handleClick;}}></button>
    )
}
//实际上也是使用了箭头函数
handleClick = (event) => {
    这里定义函数体
}

不一定支持这个属性哦,还是慎用吧。我觉得第二种方法比较好用,

相关文章

  • 2018-11-07 react 事件处理

    react事件处理和dom事件处理是相似的。 react: Dom: 所以: React事件绑定属性的命名采用驼峰...

  • react文档——事件处理

    事件处理 React 元素的事件处理和 DOM 元素的事件处理非常相似。但也有一些语法差异: React 事件使用...

  • React 事件处理机制

    React在处理事件和HTML中JS处理事件不同,本文介绍React中的事件处理机制。React中不同通过返回fa...

  • React基础(6) -- 事件处理

    React 事件处理 React 元素的事件处理和 DOM 元素类似。但是有一点语法上的不同: React 事件绑...

  • ReactJS_06 React 事件处理

    React 事件处理 React 元素的事件处理和 DOM 元素类似。但是有一点语法上的不同: React 事件绑...

  • React 事件处理

    React 事件处理 React 元素的事件处理和 DOM 元素类似。但是有一点语法上的不同: React 事件绑...

  • react随笔5 事件处理

    事件处理 React元素的事件处理和DOM元素的事件处理很相似,但是有一点语法上的不同: React事件绑定属性的...

  • React事件绑定this的几种方法

    React事件处理函数绑定this的集中方法 Follow me on GitHub React事件处理函数绑定t...

  • 学习笔记:React事件处理

    一、React 事件处理 React 元素的事件处理和 DOM 元素类似,但是有一点语法上的不同。 React 事...

  • 5.Handing Event(处理事件)

    React版本:15.4.2**翻译:xiyoki ** 使用React元素处理事件与处理DOM元素上的事件非常相...

网友评论

      本文标题:React事件处理

      本文链接:https://www.haomeiwen.com/subject/yucvhqtx.html