【问题标题】:Difference between 'export' and 'export default' in JavaScript? [duplicate]JavaScript中“导出”和“导出默认值”之间的区别? [复制]
【发布时间】:2017-07-17 15:32:59
【问题描述】:

两者之间究竟有什么区别?我见过人们使用:

function foo () {
  ...
}

export default foo;

我见过:

function bar () {
  ...
}

export bar;

另外,你为什么要使用一个而不是另一个?

【问题讨论】:

标签: javascript ecmascript-6


【解决方案1】:

在 CommonJS 中查看三种不同的 ES6 导入/导出样式编译成什么是最简单的。

// 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');

(实际编译器输出可能不同)

【讨论】:

  • 太棒了,这真的很有帮助.......
【解决方案2】:

如果您需要导出多个对象,请使用命名导出(不带默认关键字)。

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关键字没有任何关系
  • 同意@ieXcept。 default 关键字与多次导出无关。它是命名与未命名的导出。
  • 默认在技术上仍然是一个命名导出。它以default 名称导出。
猜你喜欢
  • 1970-01-01
  • 2022-01-18
  • 2016-08-20
  • 2017-07-09
  • 1970-01-01
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
  • 2020-12-06
相关资源
最近更新 更多