子要素のリストをレンダリングするコンポーネントがあります。すべての項目に対して1つのクリックハンドラーを割り当てるのはパフォーマンス上の違いがありますデータセットの属性から情報を取得する方法と、各子供のために関数を作成し、データを引数として渡す方法があります。 何が良いか、もっと慣れていますか?複数コンポーネントのクリックハンドラーでのパフォーマンスの改善[シングルクリックハンドラーと各コンポーネントのクリックハンドラー]
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>
);
}
}