export 和 export default 的区别,exports 与 module.exports的区别

export  

 
export function resetRouter(){ //resetRouter}
import {resetRouter}  from ./router.js
 

export  const router = createRouter()

import {router }  from ./router.js

export default

export  default function(){//resetRouter}

import resetRouter  from ./router.js

export  default  createRouter()

import router  from ./router.js

module.exports
 
module.exports = {
  permissionCodeMap
}
 
const permissionCodeMap = require('/utils').permissionCodeMap

重要,是成对出现的,不要混着来使用

ES6使用export和import来导出/导入模块。是静态编译的。

CommonJS的规范,被使用于Node.js中,使用module.exports与exports和require来导出/导入模块。是动态加载的。

由于加载时机的问题,有时需要require一个ES6 Module

es 6 Module(./example.js)

const a = 'helloworld';
export default a;

其实导出的是:

{
  "default": a
}

引用格式:

const { default: a } = require('./example.js')
var a = require('./expample.js).default


总结

export命令对外接口是有名称的,且import命令从模块导入的变量名与被导入模块对外接口的名称相同。

export default命令对外输出的变量名可以是任意的,这时import命令后面,不能使用大括号。

export default命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出,因此export default命令只能使用一次。

所以,import命令后面才不能用加大括号,因为只可能唯一对应export default命令。

参考:https://www.cnblogs.com/cangqinglang/p/10445256.html

https://imweb.io/topic/582293894067ce9726778be9

https://www.cnblogs.com/fps2tao/p/10823468.html

https://www.cnblogs.com/myfirstboke/p/10563597.html

原文地址:https://www.cnblogs.com/jeffhong99/p/13322376.html