且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

export,import,export default的用法和区别

更新时间:2022-02-13 16:36:52

ES6模块主要有两个功能:export和import

export:用于对外输出本模块(一个文件可以理解为一个模块)变量的接口

import:用于在一个模块中加载另一个含有export接口的模块。

export,import,export default的用法和区别

// a.js
var sex="boy";
var echo=function(value){
  console.log(value)
}

export {sex,echo} 

//通过向大括号中添加sex,echo变量并且export输出,就可以将对应变量值以sex、echo变量标识符形式暴露给其他文件而被读取到

//不能写成export sex这样的方式,如果这样就相当于export "boy",外部文件就获取不到该文件的内部变量sex的值,因为没有对外输出变量接口,只是输出的字符串。



// b.js

通过import获取a.js文件的内部变量,{}括号内的变量来自于a.js文件export出的变量标识符。

import {sex,echo} from "./a.js"

console.log(sex) // boy

echo(sex) // boy



使用方法

1、

//demo1.js
export const str = 'hello world'

export function f(a){
    return a+1
}

导入方式:

//demo2.js
import { str, f } from 'demo1' //也可以分开写两次,导入的时候带花括号

2、

//demo1.js
export default const str = 'hello world'
//demo2.js
import str from 'demo1' //导入的时候没有花括号

export,import,export default的用法和区别

注意:

1、export default 向外暴露的成员,可以使用任意变量来接收

2、在一个模块中,export default 只允许向外暴露一次

3、在一个模块中,可以同时使用export default 和export 向外暴露成员

4、使用export向外暴露的成员,只能使用{  }的形式来接收,这种形式,叫做【按需导出】

5、export可以向外暴露多个成员,同时,如果某些成员,在import导入时,不需要,可以不在{ }中定义

6、使用export导出的成员,必须严格按照导出时候的名称,来使用{ }按需接收

7、使用export导出的成员,如果想换个变量名称接收,可以使用as来起别名