นี่คือองค์ประกอบของฉันฉันใช้ฟังก์ชั่นลูกศรแบบอินไลน์เพื่อเปลี่ยนเส้นทางonClick
ของ div แต่ฉันรู้ว่ามันไม่ได้เป็นวิธีที่ดีในแง่ของประสิทธิภาพ
1. ฟังก์ชั่นลูกศรแบบอินไลน์
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={() => this.changeRoute("page1")}>1</div>
<div onClick={() => this.changeRoute("page2")}>2</div>
</>
)
}
2. ถ้าฉันใช้ตัวสร้างการเชื่อมโยงฉันจะส่งผ่านอุปกรณ์ประกอบฉากได้อย่างไร
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. ถ้าฉันลบฟังก์ชั่นลูกศรแล้วฟังก์ชั่นที่ถูกเรียกบนการแสดงผลเอง
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={this.changeRoute("page1")}>1</div>
<div onClick={this.changeRoute("page2")}>2</div>
</>
)
}
4. ถ้าฉันใช้การโยงแบบอินไลน์แล้วมันก็ไม่ได้ดีที่สุดกับประสิทธิภาพ
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>
</>
)
}
จากนั้นฉันจะดำเนินการวิธีส่งพารามิเตอร์ที่ดีที่สุดได้อย่างไร