我想创建一个模块 h
,它为每个 HTML 元素导出一个函数。以下是它的使用方式:
import {div, p} from 'h'
const myDiv = div(p('some text'))
下面是该模块的定义方式:
const h = {}
for (let tagName of ['div', 'p', /* ... */]) {
h[tagName] = (...children) => {
// ...
}
}
export const div = h.div
export const p = h.p
/* ... */
我不喜欢每个导出都必须明确列出。我如何使这些动态化?
最佳答案
how to name exports dynamically
你不能。 import
和 export
语句是专门以这种方式设计的,因为它们必须是静态可分析的,即导入和导出名称必须在之前已知代码被执行。
如果您需要一些动态的东西,那么做您已经在做的事情:导出“ map ”(或对象)。人们仍然可以使用解构来获得他们想要的东西:
const {div} = h;
关于javascript - es2015 模块 - 如何动态命名导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33684154/