क्या कोई प्रदर्शन लाभ एक दूसरे पर उपयोग करने के लिए है?
वर्तमान उत्तर नहीं है, क्योंकि वर्तमान ब्राउज़र इंजन में से कोई भी लागू नहीं होता है import/export
से कोई भी ES6 मानक से नहीं होता है।
कुछ तुलना चार्ट http://kangax.github.io/compat-table/es6/ इसे ध्यान में नहीं रखते हैं, इसलिए जब आप क्रोम के लिए लगभग सभी साग देखते हैं, तो बस सावधान रहें। import
ES6 के कीवर्ड को ध्यान में नहीं रखा गया है।
दूसरे शब्दों में, वी 8 सहित मौजूदा ब्राउज़र इंजन आयात नहीं कर सकते नई JavaScript फ़ाइल से मुख्य JavaScript फ़ाइल किसी भी जावास्क्रिप्ट के निर्देश के माध्यम से।
(हम अभी भी V8 लागू होने तक कुछ ही दूर या वर्ष दूर हो सकते हैं कि ES6 विनिर्देश के अनुसार।)
यह दस्तावेज़ वह है जिसकी हमें आवश्यकता है, और यह दस्तावेज़ वह है जिसका हमें पालन करना चाहिए।
और ES6 मानक ने कहा कि मॉड्यूल निर्भरताएं होनी चाहिए इससे पहले कि हम प्रोग्रामिंग भाषा सी में मॉड्यूल पढ़ें, जहां हमने (हेडर) किया था .h
फाइलें ।
यह एक अच्छी और अच्छी तरह से जांच की गई संरचना है, और मुझे यकीन है कि ES6 मानक बनाने वाले विशेषज्ञों के दिमाग में था।
यह वही है जो कुछ विशेष मामलों में बंडल को अनुकूलित करने के लिए वेबपैक या अन्य पैकेज बंडलर्स को सक्षम करता है , और बंडल से कुछ निर्भरता को कम करता है जिनकी आवश्यकता नहीं है। लेकिन जिन मामलों में हमारी पूर्ण निर्भरता है, ऐसा कभी नहीं होगा।
यह कुछ समय की आवश्यकता होगी जब तक import/export
देशी समर्थन लाइव हो जाता है, औरrequire
नहीं हो कीवर्ड लंबे समय तक कहीं भी नहीं जाएगा।
क्या है require
?
यह node.js
मॉड्यूल लोड करने का तरीका है। ( https://github.com/nodejs/node )
नोड्स फ़ाइलों को पढ़ने के लिए सिस्टम-स्तरीय विधियों का उपयोग करता है। आप मूल रूप से उपयोग करते समय उस पर भरोसा करते हैं require
। जावास्क्रिप्ट फ़ाइल / मॉड्यूल को लोड करने के लिए require
कुछ सिस्टम कॉल uv_fs_open
( जैसे एंड सिस्टम, लिनक्स, मैक, विंडोज पर निर्भर करता है) में समाप्त हो जाएगा।
यह जाँचने के लिए कि यह सत्य है, Babel.js का उपयोग करने का प्रयास करें, और आप देखेंगे कि import
खोजशब्द को रूपांतरित किया जाएगा require
।
node --experimental-modules index.mjs
आपimport
बेबल के बिना उपयोग करते हैं और नोड 8.5.0+ में काम करते हैं। पुराने तरीके के लिए पश्चगामी अनुकूलता के साथ, आप अपने ईपीएम पैकेजों को देशी ESModule के रूप में भी प्रकाशित (और कर सकते हैं) कर सकते हैंrequire
।