资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

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如何优雅的绑定事件,并且可以优雅的传参
分享URL:http://www.cdkjz.cn/article/gpjejh.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220