यहाँ संख्याएँ हैं
- मिनट + gzip 26k
- gzip 90 कि
- मूल 450 + के
और React के पास प्रलेखन में कई विशेषताएं नहीं हैं। यह इतना बड़ा क्यों है?
मुझे लगता है कि यह लाइटवेट डोम का कार्यान्वयन है। लेकिन मैं निश्चित होना चाहता हूं।
यहाँ संख्याएँ हैं
और React के पास प्रलेखन में कई विशेषताएं नहीं हैं। यह इतना बड़ा क्यों है?
मुझे लगता है कि यह लाइटवेट डोम का कार्यान्वयन है। लेकिन मैं निश्चित होना चाहता हूं।
जवाबों:
प्रतिक्रिया काफी कुछ करता है! रिएक्ट का सबसे बड़ा गैर-स्पष्ट हिस्सा शायद ईवेंट सिस्टम है - न केवल रिएक्ट अपने स्वयं के ईवेंट प्रेषण और बुदबुदाहट को लागू करता है, यह ब्राउज़रों में सामान्य घटनाओं को सामान्य करता है ताकि आपको इसके बारे में ज्यादा चिंता करने की आवश्यकता न हो। उदाहरण के लिए, SelectEventPlugin एक अंतर्निहित ईवेंट "प्लगइन" है जो एक onSelect
घटना प्रदान करता है जो सभी ब्राउज़रों में एक ही तरह से व्यवहार करता है।
आभासी डोम कार्यान्वयन के साथ-कोड की एक सभ्य राशि ले करता है, प्रदर्शन अनुकूलन पर बहुत प्रयास किया जाता है, यही वजह है कि अघोषित संस्करण में ReactPerf शामिल है , जो प्रतिपादन प्रदर्शन के लिए एक उपकरण है। DOM को अपडेट करने में, React आपके लिए कुछ सुविधाजनक चीजें भी करता है जैसे किसी भी इनपुट चयन को बनाए रखना और वर्तमान स्क्रॉल स्थिति को समान रखना।
प्रतिक्रिया भी कुछ अन्य चालें अपनी आस्तीन ऊपर है। सबसे अच्छे में से एक यह है कि यह पूरी तरह से HTML स्ट्रिंग के लिए एक घटक प्रदान करने का समर्थन करता है, भले ही आपके पास ब्राउज़र का वातावरण न हो, इसलिए आप एक पृष्ठ को भेज सकते हैं जो JS लोड होने से पहले भी काम करता है।
आप रिएक्ट की तुलना किससे कर रहे हैं? react-15.0.2.min.js
है 43k (gzipped)
, लेकिन jQuery है जबकि 33k ember-2.6.0.prod.js
है 363k (also gzipped)
। जाहिर है कि ये ढांचे बिल्कुल एक जैसे काम नहीं करते हैं, लेकिन उनके पास बहुत अधिक ओवरलैप हैं, इसलिए मुझे लगता है कि तुलना उचित है।
यदि आप डाउनलोड आकार के बारे में चिंतित हैं, तो मैं JS कोड के बारे में बहुत अधिक चिंता नहीं करूंगा। यहाँ एक विज्ञापन है जिसे मैं अपने स्टैक ओवरफ्लो पृष्ठ के दाईं ओर देखता हूँ:
इसका डाउनलोड आकार 95k है - मैं एक पृष्ठ में उस तरह की छवि को शामिल करने के बारे में दो बार नहीं सोचूंगा क्योंकि (भले ही मैं प्रदर्शन के बारे में चिंतित था) आमतौर पर कई अन्य प्रदर्शन से संबंधित चीजें हैं जो ठीक करने के लिए अधिक आकर्षक हैं।
संक्षेप में, मुझे नहीं लगता कि रिएक्ट इतना बड़ा है, और इसमें जो आकार है वह कई छोटी चीजों से आता है जो आपकी मदद करता है। आप एक कारण के रूप में React के छोटे API का हवाला देते हैं कि React का कोड छोटा होना चाहिए, लेकिन एक बेहतर सवाल यह हो सकता है, "React का API इतना सरल कैसे हो सकता है कि वह आपके लिए काम करने वाली सभी चीजों को दे सके?"
... लेकिन यह एक बिलकुल अलग सवाल है। :) आशा है कि मैंने आपके प्रश्न का उत्तर दिया - यदि मैंने नहीं किया तो मुझे खुशी होगी।
विचारों का एक जोड़ा .. मेरे पास आकार के साथ कुछ समान चिंताएं थीं, लेकिन इसका उपयोग करने के बाद, कोई मज़ाक नहीं, मैं इसे 5 एमबी आकार में उपयोग करता था। यह सिर्फ इतना ही अच्छा है। उस ने कहा, मैंने अन्य पुस्तकालयों पर अधिक से अधिक निर्भरता कम करने का निर्णय लिया। मैं दो चीजों के लिए jquery का उपयोग कर रहा था .. ajax और ऑटोमैटिक ajax रिस्पांस और रिक्वेस्ट हैंडलिंग (पहले, वगैरह) जो एक टोकन लॉगिन के बाद एक प्रतिक्रिया में थे, तब हैंडल होगा, और फिर सुनिश्चित करें कि प्रत्येक ajax रिक्वेस्ट को प्राधिकरण के हेडर में जोड़े भेजना। मैंने इसे देशी जावास्क्रिप्ट के एक सुपर छोटे सरल बिट के साथ बदल दिया। बहुत अच्छा काम करता है। इसके अलावा, मैं _underscore का उपयोग करने की कोशिश कर रहा था। मैंने इसे लॉश के साथ बदल दिया है, जो छोटा और तेज है, हालांकि वर्तमान में मैं इसका उपयोग नहीं कर रहा हूं इसलिए इसे पूरी तरह से हटा सकता है।
यहाँ एक लेख है, गूगल पर कई, कि मैंने पाया है कि कुछ विकल्प जेएस पर jquery का उपयोग कर देशी है।
http://www.sitepoint.com/jquery-vs-raw-javascript-1-dom-forms/