これは私がインライン矢印機能を使用して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. arrow関数を削除すると、レンダリング自体で呼び出されている関数
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>
</>
)
}
次に、パラメータを渡す最善の方法をどのように進めることができますか?