在 ES 6 模块中重新导出默认值

在ES6中,是否可以缩短以下代码。我有一个文件和一个 .App.jsindex.js

索引.js

import App from './App';

export default App;

类似的东西

索引.js

export default App from './App.js'

答案 1

如果您使用来自 Babel 插件(这是 stage-1 预设的一部分)的提案-导出-默认-默认,您将能够使用以下代码重新导出默认值:

export default from "./App.js"

有关更多信息,请参阅 ECMAScript 提案


另一种方法(没有这个插件)是:

export { default as App } from "./App.js"

这是一种非常常见的做法,当单独的文件(每个文件都有自己的 )具有所有共同点时,例如,因此,例如,如果想要导入3个实用程序函数,而不必编写多个导入exportutils

import util_a from 'utils/util_a' 
import util_b from 'utils/util_b' 
import util_c from 'utils/util_c' 

可以在一行中导入任何实用程序:

import { util_a, util_b , util_c } from 'utils' 

通过在文件夹中创建一个文件并导入所有实用程序的所有默认值并重新导出,因此该文件将充当与该文件夹相关的所有导入的“网关”。index.js/utilsindex


答案 2

这与前面的答案有点重复,但要澄清两个选项的区别:

1. 默认导出

(这似乎是OP想要的)

// index.ts
export { default } from './App'

然后,在另一个文件中:

import App from './index'

2. 命名导出

export { default as App } from './App'

然后,在另一个文件中:

import { App } from './index'

奖励:命名→默认导出

如果使用命名导出,但您希望将其作为默认导出重新导出,您也可以执行此操作:./App

export { App as default } from './App'

然后,在另一个文件中:

import App from './index'

这些将用作 vsync 的答案状态。react