0
我有一个呈现子元素列表的组件,是否为所有项目分配一个单击处理程序并从数据集属性获取信息,而不是为每个孩子创建一个函数并将数据作为参数传递? 什么更好或更习惯?在多个组件点击处理程序上的反应性能[单击处理程序与每个组件的点击处理程序]
import React, { Component } from 'react';
export class UserList extends Component {
deleteUser() {
const user = JSON.parse(e.curentTarget.dataset['user']);
// handle deletion
}
render() {
return (
<ul>
{this.props.users.map((u) => (
<li
key={u.id}
data-user={JSON.stringify(u)}
onClick={::this.deleteUser} >
delete {u.name}
</li>
))}
</ul>
);
}
}
VS
import React, { Component } from 'react';
export class UserList extends Component {
deleteUser(user) {
// handle deletion
}
render() {
return (
<ul>
{this.props.users.map((u) => (
<li
key={u.id}
data-user={JSON.stringify(u)}
onClick={() => this.deleteUser(u)} >
delete {u.name}
</li>
))}
</ul>
);
}
}