在 ES 6 模块中重新导出默认值
Re-export default in ES 6 modules
在ES6中,是否可以缩短以下代码。我有一个 App.js
文件和一个 index.js
.
index.js
import App from './App';
export default App;
像这样
index.js
export default App from './App.js'
如果您使用 proposal-export-default-from
Babel plugin (which is a part of stage-1
preset),您将能够使用以下代码重新导出默认值:
export default from "./App.js"
有关详细信息,请参阅 the ECMAScript proposal。
另一种方式(没有这个插件)是:
export { default as App } from "./App.js"
以上是一种非常常见的做法,当单独的文件(每个文件都有自己的 export
)具有所有共同点时,例如 utils
,例如,如果有人想要导入 3 个 utility 函数,而不必编写多个 imports:
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'
通过在 /utils
文件夹中创建一个 index.js
文件并导入那里所有实用程序的所有默认值并重新导出,因此 index
文件将作为“网关”用于与该文件夹相关的所有导入。
import App from './App';
export default App;
⬇
Babel 7(带 @babel/preset-react
)可以转换以下内容:
export { default as App } from './App.js';
相关讨论:
这与之前的答案有点重复,但要澄清两个选项的区别:
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'
这些将与 react
一起工作,因为 vsync 的 answer 状态。
import App from './App';
export default (App);
这在默认情况下对我有用 'create-react-app' 应用程序
唯一可行的解决方案是:
import App from './App';
export default App;
如果你像这样导出你的模块
export { default as App } from './App.js';
然后它不再是默认导出,如果您尝试将其作为默认导入导入,您将收到错误消息。
在ES6中,是否可以缩短以下代码。我有一个 App.js
文件和一个 index.js
.
index.js
import App from './App';
export default App;
像这样
index.js
export default App from './App.js'
如果您使用 proposal-export-default-from
Babel plugin (which is a part of stage-1
preset),您将能够使用以下代码重新导出默认值:
export default from "./App.js"
有关详细信息,请参阅 the ECMAScript proposal。
另一种方式(没有这个插件)是:
export { default as App } from "./App.js"
以上是一种非常常见的做法,当单独的文件(每个文件都有自己的 export
)具有所有共同点时,例如 utils
,例如,如果有人想要导入 3 个 utility 函数,而不必编写多个 imports:
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'
通过在 /utils
文件夹中创建一个 index.js
文件并导入那里所有实用程序的所有默认值并重新导出,因此 index
文件将作为“网关”用于与该文件夹相关的所有导入。
import App from './App';
export default App;
⬇
Babel 7(带 @babel/preset-react
)可以转换以下内容:
export { default as App } from './App.js';
相关讨论:
这与之前的答案有点重复,但要澄清两个选项的区别:
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'
这些将与 react
一起工作,因为 vsync 的 answer 状态。
import App from './App';
export default (App);
这在默认情况下对我有用 'create-react-app' 应用程序
唯一可行的解决方案是:
import App from './App';
export default App;
如果你像这样导出你的模块
export { default as App } from './App.js';
然后它不再是默认导出,如果您尝试将其作为默认导入导入,您将收到错误消息。