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

标签 javascript ecmascript-6

假设我有这样的模块,

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

使用如下。

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

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

最佳答案

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

// 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'

但我不确定这是否适合您的用例。

关于javascript - 将变量分配给 'import' ed ES2015 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31424317/

相关文章:

javascript - 检查 ReactJS 无状态组件中是否存在方法

javascript - 将具有唯一 id 属性的对象数组转换为 Map

javascript - 未知的 Twitter API 问题

javascript - 在javascript中将文件内容读入字符串的最基本方法

javascript - 从 React 中的文件夹导入索引(.ts|.js) 文件

javascript - 如何使用 Web MIDI 处理设备插入/拔出?

javascript - 在 promise 链中混合变量

javascript - 如何在 ES2015 中克隆一个对象(包括其原型(prototype))

javascript - pugjs (jade 模板) - 删除 block 语句中的换行符

javascript - 如何比较对象数组和字符串数组?