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")}},

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

三。对于以上方式,何不为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}
就可以了

转载于:https://blog.51cto.com/3795780/2153707

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值