我正在将一些ES5代码转换为ES6
在文件StatesComponent.js
const STATES=require('../data/STATES.js');
我使用的是jspm,它不支持require,因此我想改用ES6import语法
states.js文件包含以下内容:
exports.AU=[
{值:'澳大利亚首都地区',标签:'澳大利亚首都地区',类别名称:'州法案'},
{值:'新南威尔士州',标签:'新南威尔士州',类名:'新南威尔士州'},
{值:'victoria',标签:'victoria',类名:'State Vic'},
];
美国出口=[
{value:'AL',label:'Alabama',disabled:true},
{值:“AK”,标签:“阿拉斯加”},
{值:'AS',标签:'美属萨摩亚'},
];
STATES变量被用作var options=STATES[this.state.country]
如何更改states.js中json的格式,以便“导入”它
i、 e从“../data/STATES”导入状态
不确定您是否已获得此问题的答案,但您可以将其导出为:-
导出默认值{
国家:{
'AU':{…},
'美国':{…}
}
};
您可以将其导入为:-
从“状态”导入状态;
或
var STATES={};
STATES.AU={…};
STATES.US={…};
出口国;
您可以将其导入为:-
从“STATES”导入{STATES};
请注意使用默认值和不使用默认值之间的区别。使用default可以导出任何javascript表达式,在导入过程中可以使用任何标识符,它将默认为该default表达式。
你也可以这么做
从“州”导入任何内容;
而无论什么都会得到我们指定为默认值的对象的值
相反,当您不导出default表达式时,export将其作为对象的一部分导出,这就是为什么您必须使用
导入{STATES}
在这种情况下,必须使用正确的文字名称进行导入,否则导入将无法理解您试图导入的内容。另外,请注意,它正在使用objectdestructuring导入正确的值
正如@AlexanderT所说,作为*也有导入的方法,事实上,导入和导出的方法多种多样,但我希望我解释了导入/导出工作原理的核心概念