假设我有一个功能:
handleChange = (e) => {
this.setState({ [e.target.id]: e.target.value });
}
以下几点之间有什么区别:
1.
<FormControl value={this.state.password} onChange={this.handleChange} />
<FormControl value={this.state.password} onChange={(e) => this.handleChange(e)} />
发布于 2018-05-17 08:21:44
假设您的事件处理程序是这样在类中编写的
handleChange = (e) => {
this.setState({ [e.target.id]: e.target.value });
}
让我们来看你提到的第一个例子。
<FormControl value={this.state.password} onChange={this.handleChange} />
在这里,对于每次更改,您都要传递handleChange函数的内存引用,并将事件对象传递给它。
第二种方法。
<FormControl value={this.state.password} onChange={(e) => this.handleChange(e)} />
在这里,您将创建一个新的匿名函数,该函数每次发生事件更改时都将事件对象作为参数。这大大增加了垃圾收集,如果您有大型列表items.Adding,则箭头函数在本例中是多余的,因为上下文已经被绑定,这是因为您最初编写handleChange
方法的方式。作为perf提示,如果在类中使用箭头函数,则对事件处理程序使用选项1。
https://stackoverflow.com/questions/48305194
复制相似问题