यह मेरा घटक है मैं 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>
</>
)
}
फिर मैं सबसे अच्छे तरीके से गुजरने वाले मापदंडों के साथ कैसे आगे बढ़ सकता हूं?