export和export default实现的功能相同,即:可用于导出(暴露)常量、函数、文件、模块等,以便其他文件调用。
定义
export
本质上就是规定模块[js文件]的对外接口[属性或方法]export default
则是在export
的基础上,为规定模块提供一个默认的对外接口
区别
- export 导出需使用{} 将对应的模块导出,同时在使用是import导入时需要使用{}来引入相应的模块
- export default导出时,不用使用{} 进行导出对应的模块、函数、文件等。但是只能导出一个。同时import 导入时也不用{} 实现导入
例子
export
export function output() {
// ...
}
import {output} from './example'
export default
export default function output() {
// ...
}
import output from './example'
注意
- export default 向外暴露的成员,可以使用任意变量来接收
- 在一个模块中,export default 只允许向外暴露一次
- 在一个模块中,可以同时使用export default 和export 向外暴露成员
- 使用export向外暴露的成员,只能使用{ }的形式来接收,这种形式,叫做【按需导出】
- export可以向外暴露多个成员,同时,如果某些成员,在import导入时,不需要,可以不在{ }中定义
- 使用export导出的成员,必须严格按照导出时候的名称,来使用{ }按需接收
- 使用export导出的成员,如果想换个变量名称接收,可以使用as来起别名
- import * as xxx from 'xxx' 会将
"xxx"
中所有export
导出的内容组合成一个对象返回