2016-01-09 9 views
6

जब सेटस्टेट को कॉल करके एक घटक को अद्यतन किया जाता है, तो क्या प्रतिक्रिया पूरे डीओएम पेड़ पर भिन्न एल्गोरिदम चलाती है, या केवल उस भाग के हिस्से पर जो अद्यतन घटक से संबंधित है?क्या प्रतिक्रिया हमेशा पूरे पेड़ की जांच करती है?

उदाहरण के लिए, यदि मेरे ऐप में 10000 घटक हैं और एक ऐसे घटक में सेटस्टेट को कॉल करें जिसमें कोई बच्चा नहीं है (यह पेड़ का पत्ता है), तो पूरे बड़े डीओएम पेड़ (जो धीमा होगा) के माध्यम से प्रतिक्रिया करेगा या घटक द्वारा उत्पन्न केवल डीओएम पेड़ (जो बहुत तेज़ होगा)?

उत्तर

4

नहीं, जब आप केवल एक पत्ता नोड पर सेटस्टेट कहलाते हैं तो पूरे पेड़ से प्रतिक्रिया नहीं होगी।

सेटस्टेट की कॉल पर, प्रतिक्रिया केवल घटक (पेड़ नोड) को फिर से प्रस्तुत करेगी जिसके लिए सेटस्टेट को कॉल किया गया था और किसी भी घटक (नोड्स) जो बच्चे हैं। यह ध्यान दिया जाना चाहिए कि प्रतिक्रिया केवल डीओएम को अपडेट करेगी यदि कॉल से सेटस्टेट में वास्तव में एक परिवर्तन का प्रतिनिधित्व किया जाता है।

प्रतिक्रिया टीम के सदस्यों में से एक वीजेक्स ने एक अच्छा ब्लॉग पोस्ट लिखा है कि प्रतिक्रिया भिन्नता एल्गोरिदम कैसे काम करती है, और जब आप सेटस्टेट को कॉल करते हैं तो यह कैसे काम करता है। यहां link है।

+0

यह समझना महत्वपूर्ण है कि जब आप किसी घटक पर सेटस्टेट को कॉल करते हैं, तो उसके सभी उप पेड़ घटकों को फिर से प्रस्तुत किया जाएगा। इस प्रदर्शन निहितार्थ से बचने के लिए, हमें बुद्धिमानी से 'बूलियन चाहिएकंपोनेंट अपडेट (ऑब्जेक्ट अगलीप्रॉप, ऑब्जेक्ट अगलीस्टेट)' –

+0

का उपयोग करने की समझदारी से उपयोग करना होगा यह एक अच्छा बिंदु है और यह समझना महत्वपूर्ण है कि सेटस्टेट का बड़ा प्रभाव हो सकता है यदि आप इसे पेड़ में ऊंचा कर रहे हैं और प्रोप के माध्यम से उस स्तर को कई स्तरों से गुजरना। मुझे यह [उन्नत प्रदर्शन लिंक] पसंद है (https://facebook.github.io/react/docs/advanced-performance.html) जो ऊपर बताए गए क्वॉम्पोनेंट अपडेट का उपयोग करने की रणनीति का वर्णन करता है। –

+0

इसके अलावा, हालांकि यह एक उन्नत विषय है, [अपरिवर्तनीय डेटा संरचनाओं] (https://facebook.github.io/immutable-js/) का उपयोग करके और उन लोगों को पास करने के रूप में प्रोप के रूप में विशेष रूप से चाहिएकॉम्पेंटेंट अपडेट में प्रदर्शन पर बड़ी जीत हो सकती है तरीका। –

संबंधित मुद्दे