import React, { Component, PropTypes } from 'react';
यह कहता है:
आयात डिफ़ॉल्ट से निर्यात 'react'नाम के तहत Reactऔर आयात नामित निर्यात Componentऔर PropTypesएक ही नाम के तहत।
यह दो सामान्य वाक्यविन्यास को जोड़ती है जो आपने शायद देखा है
import React from 'react';
import { Component, PropTypes } from 'react';
पहले का उपयोग डिफ़ॉल्ट निर्यात को आयात करने और नाम देने के लिए किया जाता है, दूसरा निर्दिष्ट नामित निर्यातों को आयात करने के लिए किया जाता है।
एक सामान्य नियम के रूप में, अधिकांश मॉड्यूल या तो एकल, डिफ़ॉल्ट निर्यात, या नामित निर्यात की सूची प्रदान करेंगे। एक मॉड्यूल के लिए डिफ़ॉल्ट निर्यात और नामित निर्यात दोनों प्रदान करना कुछ हद तक सामान्य है । हालांकि, इस मामले में जहां एक विशेषता है जो सबसे अधिक आयात की जाती है, लेकिन अतिरिक्त उप-विशेषताएं भी हैं, पहले डिफ़ॉल्ट के रूप में निर्यात करने के लिए एक वैध डिजाइन है, और शेष निर्यात नाम के रूप में। यह ऐसे मामलों में है जिसका उपयोग importआप उस वाक्यविन्यास का उपयोग करेंगे जिसका आप उल्लेख करते हैं।
अन्य उत्तर कहीं न कहीं गलत और भ्रमित करने वाले हैं, संभवतः क्योंकि जिस समय यह प्रश्न पूछा गया था उस समय एमडीएन दस्तावेज गलत और भ्रमित करने वाले थे। एमडीएन ने उदाहरण दिखाया
import name from "module-name";
और कहा nameकि "उस वस्तु का नाम है जिसे आयातित मान प्राप्त होंगे।" लेकिन यह भ्रामक और गलत है; सबसे पहले, केवल एक आयात मूल्य है, जो "प्राप्त" होगा (क्यों न केवल "असाइन किया गया", या "संदर्भित करने के लिए इस्तेमाल किया" कहें) nameऔर इस मामले में आयात मूल्य मॉड्यूल से डिफ़ॉल्ट निर्यात है ।
यह समझाने का एक और तरीका यह है कि उपरोक्त आयात ठीक उसी के समान है
import { default as name } from "module-name";
और ओपी का उदाहरण इसके समान है
import { default as React, Component, PropTypes } from 'react';
MDN प्रलेखन उदाहरण दिखाने के लिए चला गया
import MyModule, {foo, bar} from "my-module.js";
और दावा किया कि इसका मतलब है
संपूर्ण मॉड्यूल की सामग्री आयात करें, कुछ के साथ स्पष्ट रूप से नाम दिया गया है। यह सम्मिलित करता है myModule(सिक) foo, और barवर्तमान दायरे में। ध्यान दें कि fooऔर myModule.fooएक ही हैं, के रूप में कर रहे हैं barऔरmyModule.bar
एमडीएन ने यहां क्या कहा, और गलत एमडीएन प्रलेखन के आधार पर अन्य उत्तर क्या दावा करते हैं, बिल्कुल गलत है, और यह कल्पना के पुराने संस्करण पर आधारित हो सकता है। यह वास्तव में क्या करता है
डिफ़ॉल्ट मॉड्यूल निर्यात और कुछ नामांकित निर्यात आयात करें। यह सम्मिलित करता है MyModule, fooऔर barवर्तमान दायरे में। निर्यात के नाम fooऔर के माध्यम से सुलभ नहींbar हैंMyModule , जो डिफ़ॉल्ट निर्यात है, न कि सभी निर्यातों को कवर करने वाला कुछ छाता।
(डिफ़ॉल्ट मॉड्यूल निर्यात export defaultसिंटैक्स के साथ निर्यात किया जाने वाला मूल्य है , जो हो भी सकता है export {foo as default}।)
MDN दस्तावेज़ीकरण लेखकों को निम्नलिखित फ़ॉर्म से उलझन हो सकती है:
import * as MyModule from 'my-module';
यह सभी निर्यातों को आयात करता है my-module, और जैसे नामों के तहत उन्हें सुलभ बनाता है MyModule.name। डिफ़ॉल्ट निर्यात भी सुलभ है MyModule.default, क्योंकि डिफ़ॉल्ट निर्यात वास्तव में नाम के साथ एक और नामित निर्यात से ज्यादा कुछ नहीं है default। इस सिंटैक्स में, केवल नामित निर्यात का एक सबसेट आयात करने का कोई तरीका नहीं है, हालांकि कोई डिफ़ॉल्ट निर्यात आयात कर सकता है, अगर कोई एक साथ, सभी नामित निर्यातों के साथ है
import myModuleDefault, * as myModule from 'my-module';