이것은 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>
</>
)
}
그렇다면 매개 변수를 전달하는 가장 좋은 방법은 어떻게 진행할 수 있습니까?