Ini adalah komponen saya, saya menggunakan fungsi panah sebaris untuk mengubah rute onClickdiv tetapi saya tahu itu bukan cara yang baik dalam hal kinerja
1. Fungsi panah sebaris
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={() => this.changeRoute("page1")}>1</div>
<div onClick={() => this.changeRoute("page2")}>2</div>
</>
)
}
2. Jika saya menggunakan binding konstruktor maka bagaimana saya bisa lulus alat peraga?
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. Jika saya menghapus fungsi panah maka fungsi dipanggil pada render itu sendiri
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={this.changeRoute("page1")}>1</div>
<div onClick={this.changeRoute("page2")}>2</div>
</>
)
}
4. Jika saya menggunakan inline binding maka itu juga tidak terbaik dengan kinerja
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>
</>
)
}
Lalu bagaimana saya bisa melanjutkan dengan cara terbaik melewati parameter?