comment的模块导出方式:
exports、module.exports
exports:会默认生成一个空对象,将要导出的值作为空对象的属性
module.exports:导出的是什么,引入时就是什么。
comment的模块引用方式:
require
es6的模块导出方式:
export、export default
export:导出一个空对象,将要导出的值作为空对象的属性
export default:直接导出
es6的模块引用方式:
import
下面第一种与第二种情况是es6的模块导出语法与去区别
在写node服务时,遇到了第三种情况。es6的模块导出方式,comment的模块引用方式
注意:node中是不支持es6的模块导出与引用方式的,所以需要借助于babel进行转换
1: 使用export导出时,import再引入时需要加{},个人感觉就是相当于作为一个对象的属性导出去了
a.js
let a = 2
export a
b.js
import {a} from 'a.js'
2:使用export default 导出时,import再引入时直接使用
a.js
let a = 2
export default a
b.js
import a from 'a.js'
3:使用export default 导出时,require再引入时,如果要取值,需要加一个default
这便是第一种情况所说的,export default 相当于默认导出一个对象
a.js
let a = 2
export default a
b.js
const a = require('a')
如果要取a.js中a的值,需要使用a.default
注意:
CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。
CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。
网友评论