ホームページ > ウェブフロントエンド > jsチュートリアル > React JS で onClick イベント ハンドラーに効率的に値を渡すにはどうすればよいですか?

React JS で onClick イベント ハンドラーに効率的に値を渡すにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-28 03:25:11
オリジナル
897 人が閲覧しました

How Can I Efficiently Pass Values to onClick Event Handlers in React JS?

React js onClick イベント値の受け渡し

React js イベントを操作する場合、メソッドに値を渡すのが難しい場合があります。この問題は、複数の解決策を検討することで解決します。

1.アロー関数の使用

最も簡単な方法は、アロー関数を利用することです。

return (
  <th value={column} onClick={() => this.handleSort(column)}>{column}</th>
);
ログイン後にコピー

アロー関数は、適切なパラメータを使用して handleSort を呼び出す新しい関数を作成します。ただし、このアプローチでは毎回新しい関数が生成されるため、不必要な再レンダリングが発生します。

2.サブコンポーネントへの抽出 (推奨)

より良いアプローチは、onClick イベント処理をサブコンポーネントに抽出することです。ハンドラーと値を小道具として受け取るサブコンポーネントを作成します:

class TableHeader extends Component {
  handleClick = () => {
    this.props.onHeaderClick(this.props.value);
  };

  render() {
    return (
      <th>
        <th onClick={this.handleClick}>{this.props.column}</th>
      </th>
    );
  }
}
ログイン後にコピー

メインコンポーネントで、ハンドラーと値の小道具をサブコンポーネントに渡します:

{this.props.defaultColumns.map((column) => (
  <TableHeader
    value={column}
    onHeaderClick={this.handleSort}
  />
))}
ログイン後にコピー

Thisハンドラー参照が決して変更されないようにし、不必要な処理を最小限に抑えます。再レンダリングします。

3. ES5 メソッド (旧)

ES5 を使用している場合は、次のように関数をコンポーネント コンテキストにバインドできます。

return (
  <th value={column} onClick={this.handleSort.bind(this, column)}>{column}</th>
);
ログイン後にコピー

以上がReact JS で onClick イベント ハンドラーに効率的に値を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート