es6导入导出和模块化导入导出的区别-技术鸭论坛-前端交流-技术鸭(jishuya.cn)

es6导入导出和模块化导入导出的区别

es6导入导出和模块化导入导出的区别

es6 :

1-暴露: export 和 export default

+ 文件暴露 或者 文件导出
  - export
    - 可以暴露多次 【即可以使用多次】
    PS : export const qq=()=>{}
  - export  default 
		- 一个js文件只能只能出现一次
    PS : export defaulr {aa:111}

2-导入: import

- 使用 export  暴露 来导入
	+ 导入需要使用 {}
	+ 名字不能直接更改,若需要更改可以使用 as关键字
  	PS : import {qq} from  '路径'
					import {qq  as  bb} from  '路径'
- 使用 export default 暴露 来导入
	+ 名字可以自定义
	+ 不需要添加 {} 还是导入qq ==名字换成cc 
	  PS : import cc from  '路径'

module块话暴露导入导出 一般适用于node中 即:commonJS规范

 exports && module.exports

1.module.exports

例:example.js

暴露:
    var x = 5;
    module.exports.x = x;
    module.exports.Name="我是电脑";
    module.exports.Say=function(){
      console.log("我可以干任何事情");  
    }

2.exports

//导出变量
export const a = '100';  

 //导出方法
export const dogSay = function(){ 
    console.log('wang wang');
}

 //导出方法第二种
function catSay(){
   console.log('miao miao'); 
}
export { catSay };

3.导入

导入:
    var example = require("./example.js");

    example.x      //这个值是 5
    example.Name      //这个值是 "我是电脑"
    example.Say()     //这个是直接调用Say方法,打印出来 "我可以干任何事情"

require导出的内容是module.exports的指向的内存块内容,并不是exports的。
简而言之,区分他们之间的区别就是 exports 只是 module.exports的引用,
辅助后者添加内容用的。为了避免糊涂,尽量都用 module.exports 导出,然后用require导入。
请登录后发表评论

    请登录后查看回复内容