如何在ES6中导出导入的对象?
用例很简单:我只想导出一个名称与导入的对象。
例如:
import React from 'react'; export React;
但是这不起作用。 我必须写:
import React from 'react'; export const React = React;
但是这很奇怪。 什么是正确的方法来做到这一点?
更新 :
感谢您的帮助和参考。 我用很多线索解决了我的问题。 我想分享一些常见案例和解决scheme。
出口import
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 }
您应该能够export {React}
并通过import {React} from ./module
导入它
有关更多信息,请参阅https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export 。
鉴于./foo.js
:
const Foo = class { talk() { return 'hello'; } }; export default Foo;
那么你应该可以做到这一点:
import Foo from './foo'; let foo = new Foo(); foo.talk(); // => 'hello';
语法或多或less遵循commonjs module.exports模式,你可以这样做:
const Foo = class { }; module.exports = Foo;
更多在这里: