React事件监听时的传参, bind or 闭包?

#1

1.第一种

handleClick=(arg1, e)=>{};

使用时:

onClick={this.handleClick.bind(this, "xxxx")

2.第二种

handleClick=(arg1)=>{
    return (e)=>{};
}; 

使用时:

onClick={this.handleClick("xxxx")

有时候事件监听, 需要添加一些参数, 我所了解到的是这两种方法, 但是那种方法更好一些? 第二种闭包, 在组件销毁时 ,闭包会销毁么?

#2

用闭包

handleClick = (arg1) => (e) => {
  
}; 
#3

两种都不行。你的做法在当render被调用时,传到onClick里面的方法都是新创建的, 子组件会认为这个属性被更新了,子组件会重新render,这是无谓的性能消耗。

1 Like