2016-09-20 4 views
15

कृपया पूरी तरह से पढ़ने से पहले इस प्रश्न को बंद न करें। यह एक प्रश्न की तरह लग सकता है जिसका मुख्य रूप से किसी की राय से उत्तर दिया जा सकता है। लेकिन PropTypes के दो कार्यान्वयन क्यों हैं? किसको प्राथमिकता दी जाती है?स्थैतिक प्रोपटाइप बनाम React.PropTypes

एक तरीका है स्थिर कीवर्ड का उपयोग करना और हमारे propTypes को परिभाषित करना। अगर हम उत्पादन के लिए एप्लिकेशन बनाने के समय में static कीवर्ड का उपयोग कर रहे

class App extends React.Component { 
    ... 
} 

App.propTypes = { 
    ... 
} 

हम propTypes हटा सकते हैं:

class App extends React.Component { 
    static propTypes = { 
    ... 
    } 
} 

अन्य तरीके से इस तरह कुछ करने के लिए है? चूंकि प्रदर्शन लाभ के लिए propTypes को हटाने के लिए प्रोत्साहित किया जाता है।

+0

पता करने के लिए जो तरीके के रूप में अच्छी तरह से करता है, तो आप कर रहे हैं, ऐसा माहौल में पसंद किया जाता है चाहेंगे दोनों काम करता है। स्थिर तरीके को प्राथमिकता देने के लिए बस एक कोड समीक्षा टिप्पणी मिली है, लेकिन मैं इस बनाम की योग्यता पर स्पष्ट नहीं हूं। 'App.propTypes = {}' way – d3ming

उत्तर

2

मैं अपने क्योंकि पहले संस्करण

class App extends React.Component { 
    static propTypes = { 
    ... 
} 
} 

नहीं है मान्य ES6 लगता है। आपके पास वर्ग घोषणा के अंदर आवंटित स्थिर चर नहीं हो सकता है। यदि आप उस संस्करण का उपयोग करना चाहते हैं तो आपको ES7 को शामिल करने के लिए अपने ट्रांसफ़ाइलर को सेट करने की आवश्यकता होगी। कम से कम यह मेरा अनुमान है कि मेरे पास काम पर सेटिंग्स है जो मैं अब उपयोग कर रहा हूं।

14

यह जबकि इस ES6 संस्करण

class App extends React.Component { 
    ... 
} 

App.propTypes = { 
    ... 
} 

व्यक्तिगत तौर पर मैं ES7 संस्करण पसंद करते हैं क्योंकि यह घटक के शीर्ष पर propTypes देखने पर अधिक समझ में आता है एक ES7 संस्करण

class App extends React.Component { 
    static propTypes = { 
    ... 
    } 
} 

है , घटक प्रस्तुत करने के लिए आवश्यक चीज़ों का एक अवलोकन देने के लिए (फ़ंक्शन के लिए किन पैरामीटर की आवश्यकता है)।

चाहे आप किस संस्करण का उपयोग कर रहे हों, भले ही आप उत्पादन के लिए propTypes को पट्टी करना चाहते हैं, आपको https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-types का उपयोग करने की आवश्यकता है। वैकल्पिक रूप से, आप https://github.com/thejameskyle/babel-react-optimize परिणत ऊपर प्लस कुछ अन्य उपहार के बाद से मुझे लगता है कि आप भी आगे अपने अनुप्रयोग को अनुकूलित करना चाहते हैं शामिल हैं जो उपयोग कर सकते हैं (:

+0

@ मिहिर क्या यह आपके प्रश्न का उत्तर देता है? यदि ऐसा है तो आप स्वीकार करें? –

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