ES6`从导入导出*?

IT技术 javascript ecmascript-6 babeljs
2021-03-05 02:50:21

是否有使用 ES6 或 ES7 或 babel 的语法可以让我轻松地将多组子文件捆绑在一起?

例如,给定:

./action_creators/index.js
./action_creators/foo_actions.js
./action_creators/bar_actions.js

让 index.js 导入 foo 和 bar 动作,然后重新导出它们,这样我就可以

import {FooAction, BarAction} from './action_creators/index.js'

如果我要更改将对象本身组织到哪个文件中,我不想必须记住/更改引用。

2个回答

是的,ES6 支持直接导出导入的module

export { name1, name2, …, nameN } from …;

export {FooAction, BarAction} from './action_creators/index.js'

您还可以使用以下语法重新导出导入module的所有导出*

export * from …;

export * from './action_creators/index.js';

有关 MDN 的更多信息。

@Qwerty 您目前不能像这样导出命名空间。有关它的建议,请参阅github.com/tc39/proposal-export-ns-from在此期间你可以做的一件事是:``` import * asSomething from './something'; 出口{东西}```
2021-04-21 02:50:21
我是来找我为什么不能用的export * as something from .......哈哈哈
2021-04-30 02:50:21
如果随后的两行export * from ...导出同名的命名函数会发生什么我的意思是,如果export * from 'a';export * from 'b',双方ab定义一个函数具有相同的名称和导出,如:export function fn() { ... }...
2021-05-04 02:50:21
这不起作用export * as something from './something'有任何想法吗?
2021-05-09 02:50:21
这个答案对我export { default as foo } from './foo';有用。
2021-05-11 02:50:21

默认导出为Default

export {default} from './something';

默认导出为Named

export {default as foo} from './something';

命名导出为默认

export {foo as default} from './something';

命名导出为Named

export {foo} from './something';

将导出命名Renamed

export {foo as bar} from './something';
所有命名导出为所有命名
2021-04-17 02:50:21
怎么样 export * from './something';
2021-04-21 02:50:21