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>
);
}
}