Sea*_*son 15 javascript import ecmascript-6
我正在将BackboneJS(v1.2.2)项目转换为ES6 w/BabelJS.
我注意到以下两者之间存在差异:
import Backbone from 'backbone'
Run Code Online (Sandbox Code Playgroud)
和
import * as Backbone from 'backbone'
Run Code Online (Sandbox Code Playgroud)
看完这里我了解到,前者是进口骨干的默认出口那里,因为后者可以让我"导入整个模块,并通过属性的符号是指其命名为出口."
我很难理解这些之间的区别.在两个实例中都返回对象,但前者似乎使用其他属性/方法进行修饰.至少我认为导入"整个模块"将有更多的属性/方法......但我看到相反的情况.
Ami*_*mit 23
模块可以导出单个"默认导出"和/或一个或多个命名导出.
使用问题中的第一个语法导入仅导入默认导出,并将命名标识符(样本中的Backbone)设置为该对象.
第二种语法称为命名空间导入,它在单个"命名空间"对象下导入整个模块.
例如:
export.js
let b = {b: 2};
export default {a: 1}; // <- this is the ONLY default export
export {b};
export let c = {c: 3};
Run Code Online (Sandbox Code Playgroud)
import.js
import SomeName from 'export'; // 'SomeName' is now the {a: 1} instance.
import {b} from 'export'; // 'b' is now the {b: 2} instance.
import * as ns from 'export'; /* 'ns' now has properties 'default', 'b' & 'c',
representing {a: 1}, {b: 2} & {c: 3} respectively */
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5706 次 |
最近记录: |