Что, если есть разница в производительности или исполнении, когда вы отправляете данные в обработчик событий в качестве параметра или используете значение из объекта события. Так, в этом примере, взятом из учебника о React, репозиторий которого вы можете найти здесь .
{photos.map((photo, index) => (
<img
onClick={this.handleIndexClick}
data-index={index}
key={photo.value}
src={photo.value}
className={index === active ? "active" : ""}
alt="animal thumbnail"
/>
))}
Существует обработчик кликов, который берет индекс из объекта события и затем устанавливает состояние на основе этого индекса.
handleIndexClick = event => {
this.setState({
active: +event.target.dataset.index
});
};
Есть ли разница в производительности, если мы отправим индекс непосредственно в качестве параметра?
<img
onClick={this.handleIndexClick(index)}
data-index={index}
key={photo.value}
src={photo.value}
className={index === active ? "active" : ""}
alt="animal thumbnail"
/>
И тогда функция будет выглядеть так:
handleIndexClick = index => {
this.setState({
active: +index
});
};
Какой подход лучше и предпочтительнее?