从文件夹ES6导入

Quo*_*ran 0 javascript ecmascript-6 reactjs redux react-redux

我正在学习JS,我有类似的东西.

//all inside folder reducers

//reducer1.js
export default reducer1

//reducer2.js
export default reducer2

//index.js
import reducer1 from './reducer1'
import reducer2 from './reducer2'
//then combine reducer
export default index

//outside folder reducers
import reducer from './reducers'
Run Code Online (Sandbox Code Playgroud)

既然./reducers只是一个文件夹,里面有3个导出默认的3个文件,我不明白这是怎么回事?它如何知道将导入文件夹中的哪个导出默认值?

谢谢.

Vin*_*our 6

使用Webpack,当您导入文件夹时,模块加载器将导入文件夹中的index.js.您正在index.js中导出索引,因此您将导入它import reducer from './reducers'.导入文件夹只是一种简写import reducer from reducers/index.意思是两个import语句都是等价的.

总结一下,import reducer from './reducers'是一样的import reducer from reducers/index.

  • *"使用ES6"*请注意,此行为与ES6/JavaScript无关.如何解释模块标识符取决于环境*模块加载器*或使用的模块捆绑器.您描述的行为对于NodeJS和webpack来说很常见. (2认同)