我正在将一些ES5代码转换为ES6。
我在文件StatesComponent.js
const STATES = require('../data/states.js');
我使用的是jspm而且它不支持require
,因此我想使用ES6 import
语法。
states.js
文件包含以下内容:
exports.AU = [
{ value: 'australian-capital-territory', label: 'Australian Capital Territory', className: 'State-ACT' },
{ value: 'new-south-wales', label: 'New South Wales', className: 'State-NSW' },
{ value: 'victoria', label: 'Victoria', className: 'State-Vic' },
];
exports.US = [
{ value: 'AL', label: 'Alabama', disabled: true },
{ value: 'AK', label: 'Alaska' },
{ value: 'AS', label: 'American Samoa' },
];
STATES
变量用作var options = STATES[this.state.country];
如何在states.js
中更改json的格式,以便我可以`导入'它?
即import STATES from '../data/states'
答案 0 :(得分:28)
不确定您是否已经得到了答案,但可以将其导出为: -
export default {
STATES: {
'AU' : {...},
'US' : {...}
}
};
可以导入为: -
import STATES from 'states';
或
var STATES = {};
STATES.AU = {...};
STATES.US = {...};
export STATES;
可以导入为: -
import { STATES } from 'states';
请注意使用default
的一个与不使用default
的一个之间的区别。使用default
,您可以导出任何javascript表达式,在导入期间,您可以使用任何标识符,它将默认为import whatever from 'states';
表达式。
你也可以做到
whatever
和default
将获取我们分配给默认值的对象的值。
相反,当您不导出export
表达式时,import {STATES}
会将其导出为对象的一部分,这就是您必须使用的原因
*
在这种情况下,您已使用正确的文字名称进行导入,否则导入将无法理解您尝试导入的内容。另请注意,它使用object destructuring
导入正确的值。
就像@AlexanderT所说,有一些方法可以导入为import/export
,实际上有import和export的各种方法,但我希望我解释了如何导入的核心概念这个sendfile
有效。