module.exports与exports,export与export default之间的关系

项目中一直会穿插各种模块的引用的和导出,想了想,发现自己对各种导出认识不是很清晰,上网搜了下资料,简单记录下自己的记忆思路

参考:
https://www.jb51.net/article/126843.htm
https://www.cnblogs.com/fayin/p/6831071.html

一、规范区分
可以根据是否加s 即(export / exports)来记忆,这是两种分类规则

s 的属于CommonJs 规范, 没有s 的属于es6 规范

二、CommonJs

  • 记得这么一个等式 var exports = module.exports = {};
    其实exports 只是一个变量,为了方便,Node为每个模块提供一个exports变量。
    也就是说无论你怎么蹂躏exports,实际上进行导出的还是module.exports ,所以当然你也就不能改变exports 的指向(eg: var exports = “其他值”)
  • 在node中module.exports 和exports 随你用就对了

三、es6

  • default 表示的默认值,一般默认值只有一个
  • export 可以导出好多,而export default只能是一个

通过代码来理解,我们 同样导出这么一个函数

const fun1 = function(){

}
const fun2 = function(){

}

export 可以有2种写法

export{
    fun1,
    fun2
}
//或者
export  {fun1};
export  {fun2};

而export default 只能有一个

export default{
    fun1,
    fun2
}
  • 此外就是引入的区别
import { fun1, fun2 } from './export'; //导出了 export 方法 
import fun from './export'; //导出了 export default 

以上!

发布了62 篇原创文章 · 获赞 9 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_37026254/article/details/101692502