在import语句中解构导出的对象

时间:2017-12-12 20:08:51

标签: javascript ecmascript-6 ecmascript-5

如果我的模块有export default { a: fn1, b: fn2 },是否有办法只导入fn1,例如import { fn1 } from ...

3 个答案:

答案 0 :(得分:1)

是的,但您必须以不同方式导出它们。

不是导出默认对象,而是导出值本身:

export { fn1, fn2 };

然后,当您导入时,使用大括号导入并使用与导出时相同的确切名称:

import { fn1, fn2 } from './mymodule.js';

然后他们将成为您可以使用的个人价值观:

fn1();

它不是技术上的解构,但看起来非常相似。

答案 1 :(得分:1)

虽然export { fn1, fn2 }会修复您要搜索的内容,但还有各种导出和导入方式。其中一些列在下面。

我遇到的一篇很好的文章ES6 Modules in Depth

NAME EXPORTS

export fn1;
export fn2;
// OR
export { fn1, fn2 };

import { fn1, fn2 } from '';
fn1();
// OR
import { fn1 as a, fn2 as b } from '';
a();
// OR
import * as funcs from '';
funcs.fn1();

默认出口

// ONLY ONE PER MODULE
export default fn1;

import fn1 from '';
fn1();

<强> MIXED

export default fn2;

export fn1;

import fn2, { fn1 } from '';
import { default as fn2, fn1 } from ''; 
fn1();

答案 2 :(得分:0)

请勿使用默认 使用

export { fn1, fn2 }