Это мой компонент, я использую встроенную функцию стрелки, чтобы изменить маршрут 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>
</>
)
}
Тогда как я могу продолжить с лучшими способами передачи параметров?