我可以从 JS 中的另一个文件中逐个导入特定变量吗?

San*_*ili 3 javascript ecmascript-6

我想从另一个 Javascript 文件中导入一个特定的变量。我现在以标准方式执行此操作。

例如,我有一个validation.js文件,其中包含以下代码:

export const profile = {...}
Run Code Online (Sandbox Code Playgroud)

我的问题是我想通过变量名从另一个文件导入这个变量:

import {profile} from "validation" //this will work
Run Code Online (Sandbox Code Playgroud)

但是这个

let action = 'profile';

import {action} from "validation" // this will surely look for action in validation.js and not profile.
Run Code Online (Sandbox Code Playgroud)

如何使用action字符串导入正确的变量?

Cer*_*nce 5

而是导入整个命名空间,其中包含命名导出作为对象的属性,然后您可以使用[]s访问对象上的适当属性:

import * as validation from "validation";
// ...
const action = 'profile';
const profile = validation[action];
Run Code Online (Sandbox Code Playgroud)

  • 无论您是否使用命名导入或导入命名空间,整个命名空间都必须加载到内存中,如果这是您所担心的 - 并且如果您希望能够动态访问命名空间上的属性,那么可供查看的*整个命名空间*是实现这一目标的唯一真正方法,对吗?(除非您有能力重构导出它的模块,以便它一次只加载片段,或类似的东西) (2认同)