这两者之间到底有什么区别?我看到有人使用:
function foo () {
...
}
export default foo;
而我看到了:
function bar () {
...
}
export bar;
另外,为什么你会使用其中一个而不是另一个?
这两者之间到底有什么区别?我看到有人使用:
function foo () {
...
}
export default foo;
而我看到了:
function bar () {
...
}
export bar;
另外,为什么你会使用其中一个而不是另一个?
最简单的方法就是查看三种不同的ES6导入/导出风格在CommonJS中编译成什么样子。
// Three different export styles
export foo;
export default foo;
export = foo;
// The three matching import styles
import {foo} from 'blah';
import foo from 'blah';
import * as foo from 'blah';
大致编译为:
exports.foo = foo;
exports['default'] = foo;
module.exports = foo;
var foo = require('blah').foo;
var foo = require('blah')['default'];
var foo = require('blah');
(实际编译器输出可能有所不同)
function x1(){};
function x2(){};
export {x1},{x2}; //my-module.js
import {x1},{x2} from 'my-module';
否则对于单个导出,默认导出会很好地运作
export default function x1() {};
import x1 from 'my-module';
default
关键字没有任何关系。 - ieXceptdefault
名称。 - demisx