react如何優(yōu)雅的綁定事件,并且可以優(yōu)雅的傳參
標(biāo)簽:
JavaScript
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")}},
函数已经是箭头函数,还要在写个箭头函数,烦
三。对于以上方式,何不为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}
就可以了
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦