天天看点

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

react函数调用以及传参。先写目前市面上的写法,以及分析他们的不便之处,最后给出个人认为较方便的写法

一。先写不传参数的情况

1、es5写法

调用:<code>onClick={this.click.bind(this)}</code>

每次调用都需要传个this。

有的在constructor这样写

<code>this.click = this.click.bind(this)</code>

2、es6写法

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

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

1、es5的写法

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

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

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

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

箭头函数调用

onClick={()=&gt;{this.click("1111")}},

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

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

调用:<code>onClick={this.click.b("1111")}</code>,

用法与bind一样,只不过只有有参数的时候才使用,无参数直接

<code>onClick={this.click}</code>

就可以了