ES6에서 가져온 객체를 내보내는 방법은 무엇입니까? 내보내고 싶습니다. 예를 들면 다음과 같습니다. import React from

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

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

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 를 참조하십시오.


답변