ES6的模块化中,export与export default都可以用于导出常量、函数、文件、模块等,我们可以通过在其它文件或模块中import(常量、函数、文件、模块)的方式导入,但在一个文件或模块中,export、import可以有多个,export default仅有一个。

export的使用

1、直接输出

export let words = 'hello world!!!' 

export function output() { 
  // ... 
}

2、先定义在输出

let firstWords = 'hello'
let secondWords = 'world'
let thirdWords = '!!!'

function output() {
    // ...
}

export {firstWords, secondWords, thirdWords, output}

export default的使用

  • 1、export default 用于规定模块的默认对外接口

  • 2、很显然默认对外接口只能有一个,所以 export default 在同一个模块中只能出现一次

  • 3、export default只能直接输出,不能先定义再输出。

  • 4、其在 import 方式上也和 export 存在一定区别。

对比

export的输出与import输入

export function output() {
    // ...
}
 
import {output} from './example'

export default的输出与import输入

export default function output() {
    // ...
}
 
import output from './example'

从以上两种 import 方式即可看出,export default 的 import 方式不需要使用大括号包裹。因为对于 export default 其输出的本来就只有一个接口,提供的是模块的默认接口,自然不需要使用大括号包裹。