ES6导出和导入问题

时间:2016-05-18 15:27:20

标签: javascript ecmascript-6

我正在尝试导出ES6中的函数以从其他文件访问它们。 但我无法弄清楚如何。

文件1 :(导入)

import components from './components/components';
console.log(components.hej);

文件2 :(导出)

var hej = () => {
    console.log('HEj'); 
};

export var hej;

为什么我不能从文件1访问文件2中声明的函数“hej”? 这对我来说没有意义。

请帮忙!

1 个答案:

答案 0 :(得分:4)

您正在执行命名导出,而不是默认导出,因此导入语法不起作用。要导入hej,您必须执行以下操作:

// Imports a single object by name
import { hej } from './components/components';
console.log(hej);

或者:

// Imports all exported objects grouped together under the specified name
import * as components from './components/components';
console.log(components.hej);

另外,您的导出语法不正确 - export var hej应该是export { hej },因为您没有在那里定义新变量,而是使用现有的变量。或者,您可以将函数声明更改为export var hej = () => { ... };,这将产生相同的效果。