Dies ist meine Komponente. Ich verwende die Inline-Pfeilfunktion, um die Route onClickvon div zu ändern, aber ich weiß, dass dies in Bezug auf die Leistung kein guter Weg ist
1. Inline-Pfeilfunktion
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={() => this.changeRoute("page1")}>1</div>
<div onClick={() => this.changeRoute("page2")}>2</div>
</>
)
}
2. Wenn ich Konstruktorbindung verwende, wie kann ich dann Requisiten übergeben?
constructor() {
super(props)
this.changeRoute = this.changeRoute.bind(this)
}
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={this.changeRoute}>1</div>
<div onClick={this.changeRoute}>2</div>
</>
)
}
3. Wenn ich die Pfeilfunktion entferne, wird die Funktion beim Rendern selbst aufgerufen
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={this.changeRoute("page1")}>1</div>
<div onClick={this.changeRoute("page2")}>2</div>
</>
)
}
4. Wenn ich Inline-Bindung verwende, ist dies auch bei der Leistung nicht am besten
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={this.changeRoute.bind(this, "page1")}>1</div>
<div onClick={this.changeRoute.bind(this, "page2")}>2</div>
</>
)
}
Wie kann ich dann am besten mit der Übergabe von Parametern fortfahren?