react如何优雅的绑定事件,并且可以优雅的传参

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react如何优雅的绑定事件,并且可以优雅的传参相关的知识,希望对你有一定的参考价值。

react函数调用以及传参。

一。先写不传参数的情况

1、es5写法

click(){
    dosomething.....
}

调用:onClick={this.click.bind(this)}

每次调用都需要传个this。

有的在constructor这样写

this.click = this.click.bind(this)

2、es6写法

click=()=>{
         dosomething...
}

调用:onClick={this.click},感觉很好

二。如果遇到传参就比较麻烦了

1、es5的写法

click(value){
       dosomething...
}

调用:onClick={this.click.bind(this,"111")}

依旧每次调用都需要传个this。

2、es6写法

click=(value)=>{
       dosomething...
}

调用:onClick={this.click.bind(this,"111")},

虽然第一个参数没用,传什么都行,1,2,3,4都可以,但是还不能不传。很烦

箭头函数调用
onClick={()=>{this.click("1111"))},

函数已经是箭头函数,还要在写个箭头函数,烦

3、对于以上方式,何不为es6重写个bind。箭头函数只写一次,bind不用传this,

Function.prototype.b = function(...args){
        var Fn = this;
        return function(e){
             Fn(...args,e);
         }
} 

click=(value)=>{
             dosomething...
}

调用:onClick={this.click.b("1111")}
用法与bind一样,只不过只有有参数的时候才使用,无参数直接
onClick={this.click}
就可以了

以上是关于react如何优雅的绑定事件,并且可以优雅的传参的主要内容,如果未能解决你的问题,请参考以下文章

react中的传参方式

如何优雅的封装一个DOM事件库

React路由传参

还有其他优雅的方法来进行函数绑定吗? [复制]

React 实现数据双向绑定 事件的绑定以及传参 获取表单值的两种方法

React入门第一天(绑定事件,动态渲染,修改样式传参)