网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

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

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

巴马ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

一。先写不传参数的情况

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}
就可以了


网页名称:react如何优雅的绑定事件,并且可以优雅的传参
分享链接:http://bjjierui.cn/article/gpjejh.html

其他资讯