Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从文件夹ES6导入_Javascript_Reactjs_Ecmascript 6_Redux_React Redux - Fatal编程技术网

Javascript 从文件夹ES6导入

Javascript 从文件夹ES6导入,javascript,reactjs,ecmascript-6,redux,react-redux,Javascript,Reactjs,Ecmascript 6,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 //o

我在学习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'
因为
/reducers
只是一个文件夹,里面有3个文件和3个导出默认值,我不明白这是怎么回事?它如何知道将导入文件夹中的哪个导出默认值


谢谢。

使用Webpack,当您导入文件夹时,模块加载器将导入文件夹内的index.js。您正在index.js中导出索引,因此当您从“/reducers”导入reducer时,您正在导入索引。导入文件夹只是从reducers/index导入reducer的缩写。使用mean时,两个导入语句是等效的


总之,
import reducer from./reducers'
import reducer from reducers/index
相同

谢谢大家!!因此,默认情况下,如果我们希望它从文件夹导入某些内容,那么该文件必须命名为index.js?@qooc Hao Tran。是,或者您需要显式命名文件。e、 g.
从reducers/myReducer导入reducer
“使用ES6”请注意,此行为与ES6/JavaScript无关。如何解释模块标识符取决于所使用的环境模块加载器或模块绑定器。您描述的行为对于NodeJ和webpack来说很常见。不,这不是真的。导入和导出是新ES6语法的一部分。最流行的ES实现是JavaScript。JS有一个模块加载器,所以您不需要NodeJS或webpack来导入或导出模块。在加载模块时,Webpack只会给您带来许多好处。[这是规范关于解释模块标识符的全部内容]():HostResolveImportedModule是一个实现定义的抽象操作,它提供具体的模块记录子类实例,该实例对应于模块记录引用模块表示的模块上下文中出现的ModuleSpecifier字符串说明符