文件:SafeString.js
// Build out our basic SafeString type
function SafeString(string) {
this.string = string;
}
SafeString.prototype.toString = function() {
return "" + this.string;
};
export default SafeString;
我以前从未见过导出默认。对于出口默认值,有什么更容易理解的等效内容吗?
有两种不同的导出类型,命名和默认。每个模块可以有多个命名导出,但只有一个默认导出。每种类型都对应于上述类型之一。来源:MDN
命名导出
export class NamedExport1 { }
export class NamedExport2 { }
// Import class
import { NamedExport1 } from 'path-to-file'
import { NamedExport2 } from 'path-to-file'
// OR you can import all at once
import * as namedExports from 'path-to-file'
默认导出
export default class DefaultExport1 { }
// Import class
import DefaultExport1 from 'path-to-file' // No curly braces - {}
//可以为默认导入使用其他名称
import Foo from 'path-to-file' // This will assign any default export to Foo.
导出默认值用于从脚本文件导出单个类、函数或原语。
导出也可以写成
export default function SafeString(string) {
this.string = string;
}
SafeString.prototype.toString = function() {
return "" + this.string;
};
这用于在另一个脚本文件中导入此函数
在app.js中说,你可以
import SafeString from './handlebars/safe-string';
关于出口
顾名思义,它用于从脚本文件或模块导出函数、对象、类或表达式
实用程序.js
export function cube(x) {
return x * x * x;
}
export const foo = Math.PI + Math.SQRT2;
这可以导入并用作
应用程序.js
import { cube, foo } from 'Utilities';
console.log(cube(3)); // 27
console.log(foo); // 4.555806215962888
Or
import * as utilities from 'Utilities';
console.log(utilities.cube(3)); // 27
console.log(utilities.foo); // 4.555806215962888
当使用导出默认值时,这要简单得多。脚本文件只导出一件事。立方体.js
export default function cube(x) {
return x * x * x;
};
并用作应用程序.js
import Cube from 'cube';
console.log(Cube(3)); // 27