将变量分配给'import'ed ES2015模块

时间:2015-07-15 07:42:01

标签: javascript ecmascript-6

假设我有这样的模块,

//mul.js
export default function (v) {
  return v * v;
}

使用如下。

import mul from 'mul.js'
console.log(mul(3))

问题是,如何将模块mul分配给另一个变量(或对象)?我不想污染每个模块的命名空间。

1 个答案:

答案 0 :(得分:2)

为防止污染命名空间,我通常使用中间文件。例如,这就是我组织数据库查询的方式:

// queries.js
import { calEventQueries } from './calevent/calevent'
import { courseQueries } from './course/course'
import { paymentPlanQueries } from './paymentplan/paymentplan'
/* etc etc etc */    

/* then I export them individually */
export { calEventQueries }
export { courseQueries }
export { paymentPlanQueries }

/* and as a group */
export default {
    calEventQueries,
    courseQueries,
    paymentPlanQueries,
}

然后,我所要做的就是

import queries from '../path/to/queries.js'

如果我想要从一个变量访问我的所有查询,例如queries.calEventQueries

这很有用,因为我也可以轻松地抓取一组查询:

import { courseQueries } from '../path/to/queries.js'

第二种选择是使用as关键字:

import { default as someOtherName } from '../path/to/mul.js'

但我并不确定这适合您的使用案例。