export
原理: 导出的是模块(以对象的方式导出)
export.js
function a(){}
const b = 'str',
c = [1, 2];
export {a, b, c} // 导出的是模块
导入:
import {a, b, c} from ‘./export.js’
console.log(a, b, c)
// function a(){}
// b = ‘str’
// c = [1, 2]
export default
原理: 导出的是一个包了壳的对象,不会是单个模块
所以引入只能完整的引入一个对象,而不能用大括号"{}“引入,应用的时候需要”."+类名调用
eg:
export.js
const obj = {a, b, c}
export default obj;
or 1
const fn = function(){}
export default fn;
or 2
const fn1 = function(){}
const fn2 = function(){}
const fn3 = function(){}
export default {fn1, fn2, fn3}
导出的始终是一个完整的对象
所以不管导出的怎么导的引入的必须是一个对象
import obj from ‘./export’
console.log(obj) :
{a, b, c}
// 应用: obj.a(); obj.b() …
or
fn
or
{fn1, fn2, fn3}
module.exports
原理: 和export的原理差不多,同样是导出的单个的模块,引入也可以用大括号引入,但是区别是导出的写法不一样
eg:
export.js
const obj = {
a,
b,
c
}
module.exports = obj
此刻导出的也是里面的单个模块
可以单模块引入
import {a, b, c} from ‘./export.js’