2017-03-18 143 views
0

我正在學習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出口默認裏面,我不明白這是怎麼工作的?它如何知道文件夾中的哪個導出默認值將被導入?

謝謝。

回答

3

使用Webpack,當您導入文件夾時,模塊加載器將導入文件夾內的index.js。您正在index.js中導出索引,因此您在執行import reducer from './reducers'時會導入它。導入文件夾只是import reducer from reducers/index的簡寫。意思是兩個進口聲明是等價的。

總結起來,import reducer from './reducers'import reducer from reducers/index相同。

+0

謝謝!所以默認情況下,如果我們希望從文件夾中導入某個文件,那麼該文件必須命名爲index.js? –

+0

@ Quoc-Hao-Tran。是或你需要明確命名文件。例如'從reducer/myReducer進口減速器' –

+1

*「使用ES6」*請注意,此行爲與ES6/JavaScript無關。如何解釋模塊標識符取決於環境*模塊加載器*或所使用的模塊捆綁器。你所描述的行爲對於NodeJS和webpack是很常見的。 –