[javascript] प्रतिक्रियात्मक स्टेटलेस घटक, शुद्ध कॉम्पोनेंट, घटक; मतभेद क्या हैं और हमें कब उपयोग करना चाहिए?



Answers

मैं प्रतिक्रिया पर प्रतिभा नहीं हूं, लेकिन मेरी समझ से हम निम्नलिखित परिस्थितियों में प्रत्येक घटक का उपयोग कर सकते हैं

  1. स्टेटलेस घटक - ये वे घटक हैं जिनके पास जीवन-चक्र नहीं है, इसलिए उन घटकों का उपयोग मूल घटक के दोहराने वाले तत्व को प्रस्तुत करने में किया जाना चाहिए जैसे पाठ सूची को प्रस्तुत करना जो केवल जानकारी प्रदर्शित करता है और इसमें कोई क्रिया नहीं होती है।

  2. शुद्ध घटक - ये वे आइटम हैं जिनके जीवन चक्र हैं और वे हमेशा एक ही परिणाम वापस कर देंगे जब प्रोप का एक विशिष्ट सेट दिया जाता है। उन घटकों का उपयोग परिणामों की एक सूची या एक विशिष्ट ऑब्जेक्ट डेटा प्रदर्शित करते समय किया जा सकता है जिसमें जटिल बाल तत्व नहीं होते हैं और संचालन करने के लिए उपयोग किए जाते हैं जो केवल खुद को प्रभावित करते हैं। उपयोगकर्ता कार्ड की ऐसी प्रदर्शित सूची या उत्पाद कार्ड की सूची (मूल उत्पाद जानकारी) और केवल क्रिया उपयोगकर्ता ही प्रदर्शन पृष्ठ देख सकते हैं या कार्ट में जोड़ सकते हैं।

  3. सामान्य घटक या जटिल घटक - मैंने शब्द जटिल घटक का उपयोग किया क्योंकि वे आमतौर पर पृष्ठ स्तर के घटक होते हैं और इसमें बहुत से बच्चे घटक होते हैं और चूंकि प्रत्येक बच्चा अपने अनूठे तरीके से व्यवहार कर सकता है ताकि आप 100% सुनिश्चित न हों कि यह दिए गए राज्य पर एक ही परिणाम प्रस्तुत करें। जैसा कि मैंने कहा आमतौर पर इन्हें कंटेनर घटकों के रूप में उपयोग किया जाना चाहिए

Question

यह जानने के लिए कि React v15.3.0 से , हमारे पास PureRomponent नामक एक नई बेस क्लास है जिसे PureRenderMixin अंतर्निहित के साथ विस्तारित किया गया है। मैं समझता हूं कि, हुड के तहत यह shouldComponentUpdate अंदर shouldComponentUpdate की उथली तुलना को shouldComponentUpdate

अब हमारे पास एक प्रतिक्रिया घटक परिभाषित करने के 3 तरीके हैं:

  1. कार्यात्मक स्टेटलेस घटक जो किसी भी वर्ग का विस्तार नहीं करता है
  2. एक घटक जो PureComponent क्लास को बढ़ाता है
  3. एक सामान्य घटक जो Component वर्ग को बढ़ाता है

कुछ समय पहले हम शुद्ध घटक, या यहां तक ​​कि गूंगा घटक के रूप में स्टेटलेस घटकों को कॉल करते थे। ऐसा लगता है कि "शुद्ध" शब्द की पूरी परिभाषा अब प्रतिक्रिया में बदल गई है।

हालांकि मैं इन तीनों के बीच बुनियादी मतभेदों को समझता हूं, फिर भी मुझे यकीन नहीं है कि क्या चुनना है । प्रत्येक के प्रदर्शन प्रभाव और व्यापार-बंद क्या हैं?

अपडेट करें :

ये प्रश्न हैं जिन्हें मैं स्पष्ट करने की उम्मीद करता हूं:

  • क्या मुझे अपने सरल घटकों को कार्यात्मक (सादगी के लिए) के रूप में परिभाषित करना चाहिए या PureComponent क्लास (प्रदर्शन के लिए) का विस्तार करना PureComponent ?
  • क्या प्रदर्शन बढ़ता है कि मुझे खोने वाली सादगी के लिए एक वास्तविक व्यापार-बंद मिलता है?
  • क्या मुझे हमेशा सामान्य Component वर्ग का विस्तार करने की आवश्यकता होगी जब मैं हमेशा बेहतर प्रदर्शन के लिए PureComponent उपयोग कर सकता हूं?



Related