To jest mój komponent Używam wbudowanej funkcji strzałki do zmiany trasy onClick
div, ale wiem, że nie jest to dobry sposób pod względem wydajności
1. Funkcja strzałki w linii
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={() => this.changeRoute("page1")}>1</div>
<div onClick={() => this.changeRoute("page2")}>2</div>
</>
)
}
2. Jeśli używam wiązania konstruktora, to jak mogę przekazywać rekwizyty?
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. Jeśli usunę funkcję strzałki, wówczas funkcja jest wywoływana na samym renderingu
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={this.changeRoute("page1")}>1</div>
<div onClick={this.changeRoute("page2")}>2</div>
</>
)
}
4. Jeśli używam wiązania wbudowanego, nie jest to również najlepsze z wydajnością
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>
</>
)
}
Więc jak mogę przejść do najlepszego sposobu przekazywania parametrów?