Heim > Web-Frontend > js-Tutorial > Wie kann ich Werte effizient an onClick-Ereignishandler in React JS übergeben?

Wie kann ich Werte effizient an onClick-Ereignishandler in React JS übergeben?

Linda Hamilton
Freigeben: 2024-11-28 03:25:11
Original
862 Leute haben es durchsucht

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

React js onClick-Ereigniswertübergabe

Bei der Arbeit mit React js-Ereignissen kann es schwierig sein, Werte an Methoden zu übergeben. Wir werden dieses Problem angehen, indem wir mehrere Lösungen untersuchen.

1. Pfeilfunktionen verwenden

Die einfachste Methode ist die Verwendung einer Pfeilfunktion:

return (
  <th value={column} onClick={() => this.handleSort(column)}>{column}</th>
);
Nach dem Login kopieren

Pfeilfunktionen erstellen neue Funktionen, die handleSort mit den entsprechenden Parametern aufrufen. Dieser Ansatz generiert jedoch jedes Mal eine neue Funktion, was zu unnötigen erneuten Renderings führt.

2. Extrahieren in Unterkomponenten (empfohlen)

Ein besserer Ansatz besteht darin, die onClick-Ereignisbehandlung in eine Unterkomponente zu extrahieren. Erstellen Sie eine Unterkomponente, die den Handler und den Wert als Requisiten übernimmt:

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

  render() {
    return (
      <th>
        <th onClick={this.handleClick}>{this.props.column}</th>
      </th>
    );
  }
}
Nach dem Login kopieren

Übergeben Sie in der Hauptkomponente die Handler- und Wert-Requisiten an die Unterkomponente:

{this.props.defaultColumns.map((column) => (
  <TableHeader
    value={column}
    onHeaderClick={this.handleSort}
  />
))}
Nach dem Login kopieren

This stellt sicher, dass sich die Handler-Referenz nie ändert, wodurch unnötige erneute Renderings minimiert werden.

3. ES5-Methode (alt)

Wenn Sie ES5 verwenden, können Sie die Funktion wie folgt an den Komponentenkontext binden:

return (
  <th value={column} onClick={this.handleSort.bind(this, column)}>{column}</th>
);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Werte effizient an onClick-Ereignishandler in React JS übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage