san*_*hit 52 javascript ecmascript-6 babeljs es6-modules
在ES6中,是否可以缩短以下代码.我有一个App.js文件和一个index.js.
index.js
import App from './App';
export default App;
Run Code Online (Sandbox Code Playgroud)
像这样的东西
index.js
export default App from './App.js'
Run Code Online (Sandbox Code Playgroud)
Mic*_*ski 92
如果您使用proposal-export-default-fromBabel插件(这是stage-1预设的一部分),您将能够使用以下代码重新导出默认值:
export default from "./App.js"
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅ECMAScript提案.
另一种方式(没有这个插件)是:
export { default } from "./App.js"
Run Code Online (Sandbox Code Playgroud)
Fer*_*ojo 18
这是对先前答案的一些重复,但要澄清两个选项的区别:
1.默认导出
(这似乎是 OP 想要的)
export { default } from './App'
// in a different file
import App from './index'
Run Code Online (Sandbox Code Playgroud)
2.命名导出
export { default as App } from './App'
// in another file
import { App } from './index'
Run Code Online (Sandbox Code Playgroud)
这些将与reactvsync 的回答状态一起使用。
vsy*_*ync 16
import App from './App';
export default App;
Run Code Online (Sandbox Code Playgroud)
@babel/preset-react) 可以转换以下内容:export { default as App } from './App.js';
Run Code Online (Sandbox Code Playgroud)
相关讨论:
唯一有效的解决方案是:
import App from './App';
export default App;
Run Code Online (Sandbox Code Playgroud)
如果你像这样导出你的模块
export { default as App } from './App.js';
Run Code Online (Sandbox Code Playgroud)
那么它就不再是默认导出,如果您尝试将其作为默认导入导入,您将收到错误消息。