通过文件链了解ES6中的导入/导出

斯尼科

当我有3个文件时,我很难理解导出/导入机制,每个文件都包含前一个文件。

例:

//fileA.js:
export default MyClass {}

//fileB.js:
import MyClass from './fileA.js';

//fileC.js:
import './fileB.js';

我的期望是MyClass可以在fileC中使用它,但事实并非如此。你能建议吗?

威廉·范德文

在您的以下代码中:

//fileA.js:
export default MyClass {}

//fileB.js:
import MyClass from './fileA.js';

//fileC.js:
import './fileB.js';

Myclass仅在fileB中可用,因为它是直接导入的。您的第三行代码不会加载到fileA中。仅仅因为将FileA加载到FileB中并不意味着当我们在FileC中导入B时依赖项就被转移了

为了使其可用,我们必须像在文件B中一样再次将其导入文件C中:

import MyClass from './fileA.js';

其他import export语法:

当一个文件导出多个内容时(前面没有默认值),我们可以使用命名导出将其导入,例如:

export class1 {}

export class2 {}

我们正在导出2个类,我们可以使用以下语法导入它们:

import {class1, class2} from './fileA.js';

请记住,名字现在有相匹配的出口名称,class1并且class2在这种情况下。

我们还可以通过以下方式导入文件的所有导出:

import * as classes from './fileA.js';

classes.class1 // the way to access class1

这种语法将所有导出文件放到我们可以确定其名称(在as关键字之后)的对象上。然后,我们可以像通常访问对象的属性一样访问导出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章