6

考虑以下:

exports['handleEvent']('event');

export function handleEvent(event) {
  // do something with `event`
}

这在使用 babel 转换节点模块时有效,因为它将所有内容都粘贴在导出对象上。vanilla ES6中是否有导出对象的概念?我希望能够使用其名称的字符串调用方法。

我想到的一件事就是将所有功能粘贴在一个对象上并单独导出它们。另一种选择是使用一些邪恶的 eval 东西。是否有任何标准方法可以通过字符串访问当前模块中的 ES6 导出?

4

1 回答 1

3

不太确定我是否遵循...

下面是几个 ES6 模块导入 + 导出的例子。它们中的任何一个都符合您的要求吗?

示例 1

制片人:

export function one() { return 1 };
export function two() { return 2 };

消费者:

import {one, two} from 'producer';

one();
two();

示例 2

制片人:

export function one() { return 1 };
export function two() { return 2 };

消费者:

import * as producer from 'producer';

producer.one(); // or producer['one']()
producer.two();

示例 3

制片人:

export default {
  one() { return 1 },
  two() { return 2 }
};

消费者:

import producer from 'producer';

producer.one(); // or producer['one']()
producer.two();

示例 4

制片人:

export default {
  one() { return 1 },
  two() { return 2 }
};

消费者:

import {one, two} from 'producer';

one();
two();

示例 5

制片人:

export default function() { return 1 };
export function two() { return 2 };

消费者:

import one, {two} from 'producer';

one();
two();
于 2015-04-10T16:17:17.350 回答