2016-12-07 13 views
5

में प्रोप प्रकारों की जांच करना मैं आधिकारिक प्रतिक्रिया दस्तावेज में React.Component अनुभाग पढ़ रहा था। propTypes के संबंध में सब कुछ समझ में आया। दस्तावेज़ निम्नलिखित बताते हैं:प्रतिक्रिया

उत्पादन मोड में, प्रोपेटीप्स चेक दक्षता के लिए छोड़ दिए जाते हैं।

class Sample extends React.Component { 
    render() { 
     return (
      <div>Hello {this.props.name}</div> 
     ); 
    } 
} 

Sample.propTypes = { 
    name: React.PropTypes.string 
}; 

डॉक्स मतलब यह है कि उत्पादन में props के खिलाफ मेरी प्रकार के चेक को छोड़ दिया जाएगा:

मैं निम्नलिखित कोड है कहो? यदि हां, तो मुझे प्रोप प्रकारों की जांच कैसे करनी चाहिए?

+0

आपको ऐसे ऐप को डिज़ाइन करना चाहिए जो आपके घटकों के लिए अमान्य प्रकारों को पास न करे;) –

उत्तर

5

आप प्रोप प्रकारों के खिलाफ बिल्कुल भी जांच नहीं करते हैं, वास्तव में आपके लिए यह करता है।

हालांकि, दस्तावेज़ों के अनुसार, केवल तब तक जब तक आप विकास मोड में हों। प्रत्येक प्रोप प्रकार की जांच अनिवार्य रूप से एक फ़ंक्शन कॉल है जो प्रोसेसिंग पावर और मेमोरी का उपयोग करती है।


जब आप विकास में हैं, यह जानकर कि आपके प्रोप में से एक गलत प्रकार है, यह लागत एक योग्य व्यापार-बंद बनाता है।

एक बार जब आप उत्पादन में हों, तो आपके ऐप को पहले से ही पर्याप्त रूप से पर्याप्त परीक्षण किया जाना चाहिए कि आपके प्रोपे टाइप सत्यापन में से कोई भी वैसे भी असफल हो।

इस कारण से, वे आपके ऐप को थोड़ा और अधिक कुशल बनाने के लिए छोड़ दिए गए हैं।

2

प्रोप टाइप का उपयोग केवल आपकी वर्तमान विकास प्रक्रिया को सत्यापित करने के लिए किया जाता है। आपको कंसोल लॉग के माध्यम से अधिसूचित किया जाता है जब कुछ आवश्यक गुण गायब होते हैं, या किसी संपत्ति का प्रकार अपेक्षित से मेल नहीं खाता है।

उत्पादन निर्माण में इस प्रकार की सत्यापन को सत्यापित करने की कोई आवश्यकता नहीं है। गुम गुण प्रस्तुतीकरण प्रक्रिया को तोड़ते नहीं हैं, वे सिर्फ आपके घटक को अप्रत्याशित तरीके से प्रस्तुत करते हैं। लेकिन ध्यान दें कि आपकी प्रतिपादन प्रक्रिया विफल हो जाएगी, जब आपको किसी दिए गए "ऑब्जेक्ट" के गुणों तक पहुंचने की आवश्यकता होती है।

इस अप्रत्याशित व्यवहार पर नियंत्रण पाने के लिए, आपको डिफ़ॉल्ट गुणों की घोषणा करनी चाहिए।

हालांकि, प्रोपेयप्स ऑब्जेक्ट के साथ काम करना और यूनिट परीक्षणों का उपयोग करना अप्रत्याशित प्रतिपादन व्यवहार से बचने के लिए अत्यधिक अनुशंसा की जाती है। इसके साथ बने रहें!

+0

_ गुम गुण प्रस्तुति प्रक्रिया को तोड़ नहीं देते हैं। आमतौर पर, लेकिन फिर, 'अपरिभाषित' की संपत्ति foo तक नहीं पहुंच सकता है। – Timo

+0

हाँ, यह सच है! मेरा जवाब संपादित करना, धन्यवाद। –