用例很简单:我只想导出一个名称与导入名称相同的对象。
例如:
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-rule。基本上,在另一个文件中,你不应该:
import SomeClassModule from 'SomeClass/index.js';
SomeClassModule.someFunction(); // Oops, error
你应该这样做:
import SomeClassModule, {someFunction} from 'SomeClass/index.js';
someFunction(); // Ok
我经常在index.js文件中执行以下操作:
export {default as SomeClass} from './SomeClass';
export {someFunction} from './utils';
export {default as React} from 'react';
这篇博客提供了一些不错的额外示例。
重要提示
在访问这些导出的导入时,您应该注意这个eslint-rule。基本上,在另一个文件中,你不应该:
import SomeClassModule from 'SomeClass/index.js';
SomeClassModule.someFunction(); // Oops, error
你应该这样做:
import SomeClassModule, {someFunction} from 'SomeClass/index.js';
someFunction(); // Ok