Phi*_*nin 13 javascript ecmascript-6 es6-modules
之间有什么区别:
import utils from 'utils'
和
import * as utils from 'utils'?
如果是A:
//utils.js
export function doSomething()
{
//...
}
Run Code Online (Sandbox Code Playgroud)
如果是B:
//utils.js
export function doSomething()
{
//...
}
export default function doSomethingDefault()
{
//...
}
Run Code Online (Sandbox Code Playgroud)
更新:
我被vscode的intellisense功能误导了,但是正如推荐的那样,对节点+ babel的一个小测试显示了不同之处:
//index.js
import utilsCaseA from './utils1'
import * as utilsCaseAWildcard from './utils1'
var utilsCaseARequire = require('./utils1')
import utilsCaseB from './utils2'
import * as utilsCaseBWildcard from './utils2'
var utilsCaseBRequire = require('./utils2')
var compareObjects =
{
utilsCaseA, utilsCaseAWildcard, utilsCaseARequire,utilsCaseB,utilsCaseBWildcard,utilsCaseBRequire
};
console.log(compareObjects);
Run Code Online (Sandbox Code Playgroud)
ino*_*tia 12
在你的例子中:
//utils.js
export function doSomething()
{
//...
}
Run Code Online (Sandbox Code Playgroud)
案例A和案例B之间的区别在于,在案例A中import utils from 'utils',utils将是undefined因为没有默认导出.在案例B中,utils将参考doSomethingDefault.
使用import * as utils from 'utils',在案例A utils中将有一个方法(doSomething),而在案例B utils中将有两个方法(doSomething和doSomethingDefault).
import utils from 'utils'从'utils'包导入默认值.undefined在提供的情况下.
import * as utils from 'utils'exports使用所有可用的命名导出导入整个模块对象,包括default.
| 归档时间: |
|
| 查看次数: |
7847 次 |
| 最近记录: |