ES6 এ কীভাবে আমদানি করা বস্তু রফতানি করবেন?


244

ব্যবহারের কেসটি সহজ: আমি নামের সাথে কোনও জিনিস যেমন আমদানি করা হয়েছিল ঠিক তেমন রফতানি করতে চাই।

উদাহরণ স্বরূপ:

import React from 'react';
export React;

কিন্তু এই কাজ করে না. আমাকে লিখতে হবে:

import React from 'react';
export const React = React;

তবে এটি অদ্ভুত। এটি করার সঠিক উপায় কী?

আপডেট :

সাহায্য এবং রেফারেন্স জন্য ধন্যবাদ। আমি অনেক ক্লু দিয়ে আমার সমস্যার সমাধান করেছি। আমি আমার এবং সমাধানগুলির জন্য কিছু সাধারণ ঘটনা ভাগ করতে চাই।

আমদানি রফতানি

import d, {obj} from '...';

export {obj, d};
export {obj as name1, d as name2};

নামযুক্ত সমস্ত আমদানি পুনরায় রফতানি করুন

export * from '...';
export * as name1 from '...';

কিছু নামী আমদানি পুনরায় রফতানি করুন

export {a, b as name1} from '...';

পুনরায় রফতানি ডিফল্ট আমদানি হিসাবে ডিফল্ট আমদানি

export {default} from '...';

পুনরায় রফতানি ডিফল্ট আমদানি নামকরণ করা রফতানি হিসাবে

export {default as name1} from '...';

আপনি কেন প্রতিক্রিয়া রফতানি করবেন?
omarjmh

আপনি export {React}তবে আবার করতে পারেন , যদি আপনার কোথাও প্রতিক্রিয়া প্রয়োজন হয় তবে আপনার এটি কেবল সেখানে আমদানি করা উচিত।
লগানফস্মিথ

2
রফতানি প্রতিক্রিয়া হ'ল একটি উদাহরণ, বাস্তবে, আমি কিছু প্রকল্পের আয়োজন করতে চাই যাতে ব্যবহারকারীর সংক্ষিপ্ত এবং উচ্চ স্তরের পথে কিছু বস্তু আমদানি করতে পারে।
ইয়াও ঝাও

আপনাকে এই আপডেটের জন্য অনেক ধন্যবাদ। এটি ES6 / 7 এর সাথে আমার প্রতিটি সমস্যা সমাধান করেছে। আমি আপনাকে একটি উত্তর হিসাবে এটি যোগ এবং এটি গ্রহণ পরামর্শ।
ফ্লোরিয়ান ওয়েনডেলবোন

12
export * as name1 from '...';এটি আমার পক্ষে কাজ করে না (ওয়েবপ্যাক ২ ব্যবহার করে)। কোন ধারনা?
সত্তা কালো

উত্তর:


131

আমি প্রায়শই ইনডেক্স.জেএস ফাইলগুলিতে নিম্নলিখিত ফাইলগুলি করি যা বেশ কয়েকটি ফাইল রচনা করে:

export {default as SomeClass} from './SomeClass';
export {someFunction} from './utils';
export {default as React} from 'react';

এই ব্লগ এন্ট্রি কিছু দুর্দান্ত অতিরিক্ত উদাহরণ সরবরাহ করে।

গুরুত্বপূর্ণ তথ্য

এই রফতানি করা আমদানিগুলি অ্যাক্সেস করার সময় আপনার এই এসিলিন্ট-বিধিটি সম্পর্কে সচেতন হওয়া উচিত । মূলত, অন্য একটি ফাইলে, আপনার উচিত হবে না:

import SomeClassModule from 'SomeClass/index.js';
SomeClassModule.someFunction(); // Oops, error

আপনার এটি করা উচিত:

import SomeClassModule, {someFunction} from 'SomeClass/index.js';
someFunction(); // Ok

36

আপনি যেমন কাঠামো দিয়ে আমদানি করা ফাইল রফতানি করতে পারেন

import First from './First'
import Second from './Second'
/..../
export { First, Second }

2

আমার ব্যবহারের ক্ষেত্রে, আমার স্পষ্টতই কিছু ধরণের সুস্পষ্ট আমদানি বিবৃতি প্রয়োজন যাতে বাবেল আমার এস code কোডটি এসএস-তে স্থানান্তর করতে পারে।

ত্রুটিতে নিম্নলিখিত ফলাফলগুলি You gave us a visitor for the node type "ForAwaitStatement" but it's not a valid type:

require( 'babel-core/register' ); //transpiles es7 to es5
export {default} from './module_name'

আমার সমাধানটি ছিল স্পষ্টভাবে ব্যবহার করে মডিউলটি আমদানি করা require():

require( 'babel-core/register' );
export default require( './module_name' ).default;

-1

প্রদত্ত ./foo.js:

const Foo = class {
  talk() { return 'hello'; }
};

export default Foo;

তারপরে আপনার এটি করতে সক্ষম হওয়া উচিত:

import Foo from './foo';

let foo = new Foo();

foo.talk(); // => 'hello';

কমপ্লেক্সটি কমবেশি সাধারণ মডিউল.পোর্টস প্যাটার্ন অনুসরণ করে যেখানে আপনি এটি করবেন:

const Foo = class {

};

module.exports = Foo;

আরও এখানে:

http://exploringjs.com/es6/ch_modules.html


প্রশ্নটি কী ছিল তা বেশ নয়?
ড্যান ড্যাসক্লেস্কু

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.