从文件夹ES6导入
问题描述:
我正在学习JS,我有类似的东西。从文件夹ES6导入
//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'
因为./reducers
只是一个文件夹,并且有3个文件,3出口默认里面,我不明白这是怎么工作的?它如何知道文件夹中的哪个导出默认值将被导入?
谢谢。
答
使用Webpack,当您导入文件夹时,模块加载器将导入文件夹内的index.js。您正在index.js中导出索引,因此您在执行import reducer from './reducers'
时会导入它。导入文件夹只是import reducer from reducers/index
的简写。意思是两个进口声明是等价的。
总结起来,import reducer from './reducers'
与import reducer from reducers/index
相同。
谢谢!所以默认情况下,如果我们希望从文件夹中导入某个文件,那么该文件必须命名为index.js? –
@ Quoc-Hao-Tran。是或你需要明确命名文件。例如'从reducer/myReducer进口减速器' –
*“使用ES6”*请注意,此行为与ES6/JavaScript无关。如何解释模块标识符取决于环境*模块加载器*或所使用的模块捆绑器。你所描述的行为对于NodeJS和webpack是很常见的。 –