रिक्वाइयर बनाम इम्पोर्ट के बीच मतभेद
जावास्क्रिप्ट को जानने के लिए मॉड्यूल एक महत्वपूर्ण निर्माण हैं। हम जावास्क्रिप्ट मॉड्यूल को कवर करेंगे : इस रिक्वाइयर बनाम इम्पोर्ट आलेख के दौरान आवश्यक और इम्पोर्ट करें।
ये मॉड्यूल आपको पुन: प्रयोज्य कोड लिखने की अनुमति देता है। नोड पैकेज मैनेजर (एनपीएम) का उपयोग करके, आप अपने मॉड्यूल को समुदाय में प्रकाशित करेंगे। इसके अलावा, एनपीएम आपको वैकल्पिक विकास द्वारा बनाए गए मॉड्यूल का उपयोग करने की अनुमति देता है।
जावास्क्रिप्ट में आप 2 मॉड्यूल सिस्टम का चयन करेंगे:
रिक्वाइयर का उपयोग कर मॉड्यूल इम्पोर्ट करना, और मॉड्यूल का उपयोग कर व्यावसायीकरण। निर्यात और निर्यात। फू
ईएस 6 इम्पोर्ट का उपयोग कर मॉड्यूल इम्पोर्ट करना , और ईएस6 निर्यात का उपयोग कर व्यावसायीकरण।
क्या एक दूसरे पर एक का उपयोग करने के लिए कोई प्रदर्शन किनारों हैं? क्या बाकी है कि हमें हमेशा यह पहचानना चाहिए कि क्या हमारे पास नोड वाले ईएस 6 मॉड्यूल का उपयोग करने की प्रवृत्ति है? आइए इस समस्या को हल करने का प्रयास करें।
क्या रिक्वाइयर है?
रिक्वाइयर आदी मॉड्यूल उपभोग कर रहे हैं। यह आपको अपने कार्यक्रमों में मॉड्यूल को शामिल करने की अनुमति देता है। आप अंतर्निहित कोर नोड.जेएस मॉड्यूल, समुदाय-आधारित मॉड्यूल (नोड मॉड्यूल) और देशी मॉड्यूल को गले लगाएंगे।
मान लीजिए कि हम फाइल सिस्टम से फाइल स्कैन करना चाहते हैं। नोड में एक कोर मॉड्यूल होता है जिसे ‘एफएस’ कहा जाता है:
कॉन्स एफएस = रिक्वाइयर(‘एफएस’);
fs.रीडफाइल (‘./ फाइल.txt’, ‘utf-8’, (त्रुटि, डेटा) => {
अगर (गलती) {फेंकना; }
कॉन्सोल.लॉग (‘डेटा:’, डेटा);
});
जैसा कि आप देखेंगे, हमारे पास हमारे कार्यक्रम में “एफएस” मॉड्यूल इम्पोर्ट करने की प्रवृत्ति है। यह हमें “रीडफाइल” जैसे किसी भी फ़ंक्शन से जुड़ा हुआ करने की अनुमति देता है।
निम्न क्रम में फ़ाइलों के लिए रिक्वाइयर चारों ओर देख सकते हैं:
अंतर्निहित कोर नोड.जेएस मॉड्यूल (जैसे एफएस)
नोड_मॉड्यूल्स फ़ोल्डर में मॉड्यूल।
यदि मॉड्यूल नाम में एक ./, / या ../ है, तो यह दिए गए पथ के भीतर निर्देशिका के लिए चारों तरफ देखेगा। यह एक्सटेंशन से मेल खाता है: *.जेएस, * .जेएसओएन और * .नोड।
विशेषताएं की रिक्वाइयर है:
- लोड किए गए मॉड्यूल नाम को पूर्वनिर्धारित / स्थैतिक नहीं होने पर, जहां भी आप मॉड्यूल को पूरी तरह से लोड नहीं करते हैं, वहां गतिशील लोडिंग होगी, जहां भी “वास्तव में आवश्यक” (बाध्य कोड प्रवाह के आधार पर) प्रदान किया जाता है।
- लोड हो रहा है तुल्यकालिक।मतलब है कि यदि आपके पास एकाधिक रिक्वाइयर हैं, तो वे एक-एक करके लोड और संसाधित होते हैं।
- लोड किए गए मॉड्यूल नाम को पूर्वनिर्धारित / स्थैतिक नहीं होने पर, जहां भी आप मॉड्यूल को पूरी तरह से लोड नहीं करते हैं, वहां गतिशील लोडिंग होगी, जहां भी “वास्तव में आवश्यक” (बाध्य कोड प्रवाह के आधार पर) प्रदान किया जाता है।
- लोड हो रहा है तुल्यकालिक।मतलब है कि यदि आपके पास एकाधिक रिक्वाइयर एं हैं, तो वे एक-एक करके लोड और संसाधित होते हैं।
- रिक्वाइयर ज्यादातर मुख्य रूप से आधारित नहीं है।वर्तमान में यह परंपरागत बनने की बेहद असंभव है कि ईएस 6 मॉड्यूल मौजूद हैं।
रिक्वाइयर का उपयोग कर किसी भी मॉड्यूल की वास्तविक लोडिंग () पांच चरणों में होती है।
संकल्प
लोड हो रहा है
रैपिंग
मूल्यांकन
कैशिंग
पहला चरण संकल्प एक संलग्न कदम है जहां नोड.जेएस फ़ाइल विधियों की गणना करता है। लोड होने वाले दूसरे के भीतर, नोड वर्तमान विधि के भीतर कोड खींचता है। रैपिंग में कोड को लपेटने के लिए कोड को लपेटने के साथ-साथ दिखाया गया है कि इसे मूल्यांकन करने के लिए वीएम को भेज दिया जाता है, जिससे अंततः इसे कैश किया जाता है।
इसलिए, मुख्य रूप से नोड कभी भी इस बात से अवगत नहीं होता है कि एक सामान्य जेएस मॉड्यूल कब तक निर्यात करता है जब तक मॉड्यूल का मूल्यांकन नहीं किया जाता है। और यह अक्सर ईएसएमएस्क्रिप्ट मॉड्यूल के साथ सबसे बड़ा अंतर है, ईएसएम के परिणामस्वरूप अक्षीय है और इसलिए, निर्यात किए गए प्रतीकों को वास्तव में मूल्यांकन करने से पहले बेहतर ज्ञात हैं।
इम्पोर्ट क्या है?
इम्पोर्ट () का एक प्रस्ताव घोंसला इम्पोर्ट बयान बनाने के लिए भी काम करता है। शब्दावली इम्पोर्ट कीवर्ड के विपरीत, इम्पोर्ट () संचालन समय या विश्लेषण (रिक्वाइयर नुसार अधिक) पर संसाधित होता है। वाक्यविन्यास बस निम्न की तरह है।
इम्पोर्ट (“फू”)। फिर ((मॉड्यूल) =>) .कॅच ((एर) =>);
जब सहयोगी ईएसएम मॉड्यूल को पार्स किया जाता है, तो वीएम द्वारा इसका मूल्यांकन करने से पहले, एक मॉड्यूल रिकॉर्ड के रूप में संदर्भित एक संलग्न संरचना बनाई जाती है। नतीजतन, किसी भी निर्यात की गई छवि की असुविधा से संबंधित कोई भी त्रुटि विश्लेषण से पहले एक गलती उठा सकती है।
बक्सों का इस्तेमाल करें
- ऑन-डिमांड मॉड्यूल लोड व्यवहार्य है।
- मॉड्यूल का सशर्त भार करने योग्य है
- एसिंक्रोनस हैंडलिंग की तरह एक वादा।
इम्पोर्ट विशेषताएं:
- आप नामित इम्पोर्ट का उपयोग चयन लोड द्वारा पूरी तरह से उन वस्तुओं को करेंगे जिन्हें आप चाहेंगे।कौन सा स्मृति बचाएगा?
- इम्पोर्ट असीमित है (और वर्तमान ईएस6 मॉड्यूल लोडर में, यह निश्चित रूप से है) और एक स्पर्श उच्च प्रदर्शन कर सकते हैं।
- आप नामित इम्पोर्ट का उपयोग चयन लोड द्वारा पूरी तरह से उन वस्तुओं को करेंगे जिन्हें आप चाहेंगे।कौन सा स्मृति बचाएगा?
- इम्पोर्ट असीमित है (और वर्तमान ईएस6 मॉड्यूल लोडर में, यह निश्चित रूप से है) और एक स्पर्श उच्च प्रदर्शन कर सकते हैं।
- संस्करण 6 की वजह से इम्पोर्ट नोड में प्राप्य प्रतीत नहीं होता है।
- हालांकि, यह भविष्य के संस्करणों में उपलब्ध होगा।आप इन दिनों इसका उपयोग ट्रॅसेयर कंपाइलर, बॅबेल या रोलअप के समान ट्रांजिस्टर का उपयोग करके करेंगे।
रिक्वाइयर बनाम इम्पोर्ट (इन्फोग्राफिक्स) के बीच हेड टू हेड तुलना
रिक्वाइयर बनाम इम्पोर्ट के बीच शीर्ष 4 मतभेद नीचे दिए गए हैं
रिक्वाइयर बनाम इम्पोर्ट के बीच महत्वपूर्ण अंतर
दोनों रिक्वाइयर बनाम इम्पोर्ट बाजार में लोकप्रिय विकल्प हैं; आइए रिक्वाइयर बनाम इम्पोर्ट के बीच कुछ प्रमुख मतभेदों पर चर्चा करें:
- रिक्वाइयर अधिक गतिशील विश्लेषण है और इम्पोर्ट स्थिर विश्लेषण के अधिक है
- रनटाइम पर त्रुटि फेंकने की रिक्वाइयर है और पार्सिंग के दौरान इम्पोर्ट त्रुटि फेंकता है
- रिक्वाइयर नॉनलेक्सिकल है और इम्पोर्ट लेक्सिकल है
- वहां रहने की रिक्वाइयर है जहां उन्होंने फ़ाइल डाली है और इम्पोर्ट फ़ाइल के शीर्ष पर क्रमबद्ध हो जाते हैं।
- इम्पोर्ट हमेशा फ़ाइल की शुरुआत में चलाया जाता है और इसे सशर्त रूप से नहीं चलाया जा सकता है।दूसरी ओर रिक्वाइयर इनलाइन, सशर्त रूप से उपयोग की जा सकती हैं,
रिक्वाइयर बनाम इम्पोर्ट तुलना तालिका
जैसा कि आप देख सकते हैं कि रिक्वाइयर बनाम इम्पोर्ट के बीच कई तुलना हैं। आइए नीचे रिक्वाइयर बनाम इम्पोर्ट के बीच शीर्ष तुलना देखें
एस नं। | रिक्वाइयर | इम्पोर्ट |
1 | वाक्य – विन्यास :
वार डेप = रिक्वाइयर (“डेप”); कॉन्सोल.लॉग (डेप.बार); डेप.फू (); |
वाक्य – विन्यास :
इम्पोर्ट “फू, बार}” डेप “से; कॉन्सोल.लॉग (बार); फू (); |
2 | चूंकि इम्पोर्ट चरण तीन में रहता है और ब्राउज़र द्वारा मूल रूप से लागू नहीं होता है, इसलिए हम किसी भी प्रदर्शन को चलाने में असमर्थ हैं। | वर्तमान में जब आप अपने कोड में इम्पोर्ट का उपयोग करते हैं, तो आपके ट्रांजिस्टर को सामान्य जेएस मॉडलिंग सिस्टम की रिक्वाइयर होती है। इसलिए आजकल प्रत्येक के लिए एक ही है। |
3 | यद्यपि तत्काल कोई प्रदर्शन लाभ नहीं है, हालांकि, मैं अभी भी रिक्वाइयर पर इम्पोर्ट का उपयोग करने के लिए सलाह दूंगा क्योंकि यह जेएस में मूल होने वाला है और (इसके मूल के परिणामस्वरूप) रिक्वाइयर से अधिक प्रदर्शन करेगा। | इम्पोर्ट के परिणामस्वरूप देशी इसलिए इम्पोर्ट की तुलना में अधिक प्रदर्शन नहीं करता है |
4 | जहां भी लोड मॉड्यूल नाम पूर्वनिर्धारित नहीं है, वहां आपके पास गतिशील लोडिंग होगी। लोड हो रहा है तुल्यकालिक। मतलब है कि यदि आपके पास एकाधिक रिक्वाइयर हैं, तो वे एक-एक करके लोड और संसाधित होते हैं। ईएस6 | आप नामित इम्पोर्ट का उपयोग चयन लोड द्वारा पूरी तरह से उन वस्तुओं को कर सकते हैं जिन्हें आप चाहें। कौन सा स्मृति बचाएगा? इम्पोर्ट असीमित है (और वर्तमान ईएस6 मॉड्यूल लोडर में, यह निश्चित रूप से है) और एक स्पर्श उच्च प्रदर्शन कर सकते हैं। इसके अलावा, रिक्वाइयर मॉड्यूल सिस्टम ज्यादातर मुख्य रूप से आधारित नहीं है। वर्तमान में यह परंपरागत बनने की बेहद असंभव है कि ईएस6 मॉड्यूल मौजूद हैं। |
निष्कर्ष – रिक्वाइयर बनाम इम्पोर्ट करें
हमने नोड.जेएसमॉड्यूल का उत्पादन करने और हमारे कोड में इसका उपयोग करने के तरीके से सीखा। मॉड्यूल हमें कोड का उपयोग करने की अनुमति देता है। वे व्यावहारिकता की आपूर्ति करते हैं जो वैकल्पिक मॉड्यूल से अलग है। एक बार छोटे, काटने वाले आकारों में एक बार प्रबंधित करने के लिए एक कोड कम जटिल होता है। यह अक्सर एक कार्य में कार्यों को रखने के पीछे सोच रहा है या फाइलों में एक समय में कुछ, या एक भाग शामिल है। यदि आपके पास एक फैंसी ऐप है और उसे कोड की हजारों लाइनों के माध्यम से स्क्रॉल करना चाहिए, तो ऐप डिबगिंग या बस समझने का कार्य उस प्रचुर मात्रा में कठिन हो जाता है।
सौभाग्य से जावास्क्रिप्ट इम्पोर्ट बनाम रिक्वाइयर के साथ हमें इसके साथ मदद करता है। हालांकि, आप एक फ़ाइल में कोड लिखेंगे और उस कोड को साझा करेंगे, इसलिए, इसे किसी अन्य फ़ाइल या फ़ाइलों द्वारा नियोजित किया जा सकता है। मुझे उम्मीद है कि अब आपको इम्पोर्ट बनाम रिक्वाइयर दोनों का एक अच्छा विचार होना चाहिए। इन ब्लॉगों के लिए हमारे ब्लॉग पर बने रहें।