如何在ES6中导出导入的对象?

Yao*_*hao 203 import export ecmascript-6

用例很简单:我只想导入一个名称与导入对象一样的对象.

例如:

import React from 'react';
export React;
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我要写:

import React from 'react';
export const React = React;
Run Code Online (Sandbox Code Playgroud)

但这很奇怪.这样做的正确方法是什么?

更新:

感谢您的帮助和参考.我用许多线索解决了我的问题.我想和我分享一些常见的案例和解决方案.

出口进口

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

export {obj, d};
export {obj as name1, d as name2};
Run Code Online (Sandbox Code Playgroud)

重新导出所有已命名的导入

export * from '...';
export * as name1 from '...';
Run Code Online (Sandbox Code Playgroud)

重新导出一些命名的导入

export {a, b as name1} from '...';
Run Code Online (Sandbox Code Playgroud)

将默认导入重新导出为默认导出

export {default} from '...';
Run Code Online (Sandbox Code Playgroud)

将默认导入重新导出为命名导出

export {default as name1} from '...';
Run Code Online (Sandbox Code Playgroud)

Eri*_* H. 106

我经常在组成几个文件的index.js文件中执行以下操作:

export {default as SomeClass} from './SomeClass';
export {someFunction} from './utils';
export {default as React} from 'react';
Run Code Online (Sandbox Code Playgroud)

博客条目提供了一些不错的其他示例.

重要的提示

访问这些导出的导入时,您应该知道此eslint规则.基本上,在另一个文件中,你不应该:

import SomeClassModule from 'SomeClass/index.js';
SomeClassModule.someFunction(); // Oops, error
Run Code Online (Sandbox Code Playgroud)

你应该做这个:

import SomeClassModule, {someFunction} from 'SomeClass/index.js';
someFunction(); // Ok
Run Code Online (Sandbox Code Playgroud)


小智 27

您可以导出具有此类结构的导入文件

import First from './First'
import Second from './Second'
/..../
export { First, Second }
Run Code Online (Sandbox Code Playgroud)


Ric*_*aca -2

Given ./foo.js:

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

export default Foo;
Run Code Online (Sandbox Code Playgroud)

Then you should be able to do this:

import Foo from './foo';

let foo = new Foo();

foo.talk(); // => 'hello';
Run Code Online (Sandbox Code Playgroud)

The syntax more or less follows the commonjs module.exports pattern, where you would do this:

const Foo = class {

};

module.exports = Foo;
Run Code Online (Sandbox Code Playgroud)

More here:

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