[import] ES6에서 가져온 객체를 내보내는 방법은 무엇입니까?

유스 케이스는 간단합니다. 가져온 이름 그대로 객체를 내보내고 싶습니다.

예를 들면 다음과 같습니다.

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 '...';



답변

여러 파일을 구성하는 index.js 파일에서 종종 다음을 수행합니다.

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

블로그 항목 은 멋진 추가 예제를 제공합니다.

중요 사항

내 보낸 가져 오기에 액세스 할 때이 eslint 규칙을 알고 있어야합니다 . 기본적으로 다른 파일에서는 다음을 수행하면 안됩니다.

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

이 작업을 수행해야합니다.

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


답변

그런 구조로 가져온 파일을 내보낼 수 있습니다

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


답변

유스 케이스의 경우 babel이 es7 코드를 es5로 변환 할 수 있도록 명시적인 import 문이 명시 적으로 필요합니다.

다음과 같은 오류가 발생합니다 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;


답변

주어진 ./foo.js:

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

export default Foo;

그런 다음이 작업을 수행 할 수 있어야합니다.

import Foo from './foo';

let foo = new Foo();

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

구문은 다음과 같이 commonjs module.exports 패턴을 따릅니다.

const Foo = class {

};

module.exports = Foo;

여기 더 :

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


답변

당신은 export {React}그것을 통해 그것을 가져올 수 있어야합니다import {React} from ./module

자세한 내용은 https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export 를 참조하십시오.


답변