【发布时间】:2020-06-07 00:44:42
【问题描述】:
我越来越多地使用 ES2015 模块。
通常情况下,我倾向于通过动态 import() 语法加载模块,使用以下模式的变体:
import(moduleURL.js).then(importedModule => myFunction(importedModule));
在 2020 年初,这似乎是一种没有陷阱的方法,因为 import() 现在拥有近乎通用的浏览器支持。
见:https://caniuse.com/#feat=es6-module-dynamic-import
但这是否也意味着静态import 语句如下:
import * as myModule from 'moduleURL.js'import { myNamedExport } from 'moduleURL.js'import myDefaultExport from 'moduleURL.js'
现在已被有效(尽管不是正式)弃用?
如果不是 - 我的猜测是它们没有被有效弃用 - 静态 import 语句相对于动态 import() 的具体技术优势是什么?
在什么情况下我最好使用前者而不是后者?
进一步阅读:
-
静态
import语句: -
动态
import():- Dynamically importing ES modules with import() 莱昂纳多·布鲁诺·利马
我为什么要问 ES2015 static import 的优点?
这不仅仅是无聊的好奇心。
我希望在我的工作流程中标准化某些流程,我对import() 非常满意。
但在我到处采用import() 之前,我想确保我不会错过静态import 语句提供的特定功能或优势,但它们更年轻、更动态的对应语句却没有。
【问题讨论】:
-
哇。我不知道你能做到
import(...)。我会争辩说,常规的进口方式import { something } from 'here';绝对不会去任何地方。import(...)似乎更多的是只需要一个特定的import来做一个快速的事情。而import { something } from 'here';则暗示您将在代码中多次使用该导入。我个人认为我不会使用import(...),但知道它的存在很酷。
标签: javascript ecmascript-6 import es6-modules