Este es mi componente. Estoy usando la función de flecha en línea para cambiar la ruta onClick
de div, pero sé que no es una buena manera en términos de rendimiento.
1. Función de flecha en línea
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={() => this.changeRoute("page1")}>1</div>
<div onClick={() => this.changeRoute("page2")}>2</div>
</>
)
}
2. Si uso el enlace de constructor, ¿cómo puedo pasar accesorios?
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. Si elimino la función de flecha, entonces la función que se llama en el render en sí
changeRoute (routeName) {
console.log(routeName)
}
render() {
return (
<>
<div onClick={this.changeRoute("page1")}>1</div>
<div onClick={this.changeRoute("page2")}>2</div>
</>
)
}
4. Si uso el enlace en línea, entonces tampoco es mejor con el rendimiento
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>
</>
)
}
Entonces, ¿cómo puedo proceder con la mejor manera de pasar parámetros?