这篇文章主要介绍了JavaScript中AMD和ES6模块导入导出的比较案例,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
我们前端在开发过程中经常会遇到导入导出功能,
在导入时,有时候是要求有时候是进口
在导出时,有时候是出口,模块。出口,有时候是出口,出口默认
今天我们对这些内容进行简单的介绍
导入,导出,导出默认
导入,导出,导出默认属于ES6规范
进口进口是在编译过程中执行
也就是说是在代码执行前执行,
比如说,进口后面的路径写错了,在运行代码前就会抛错,
在编写代码时,进口不是一定要写在js的最前面
进口命令具有提升效果,会提升到整个模块的头部,首先执行。(是在编译阶段执行的)
进口是静态执行的
因为进口是静态执行的,不能使用表达式和变量,即在运行时才能拿到结果的语法结构
比如,不能再如果和其他中使用进口
再比如,导入后的从的路径,可以是相对路径,可以是绝对路径,但是不能是根据变量得来的路径
//进口路径不可以为变量=& # 39;var url。/输出# 39; 进口{ 一个, b 从url}//这么写会报的错//- - - - - - - - - - - - - - - - - -//导入的引入与否不能和代码逻辑向关联 让状态=true 如果(状态){ 进口{ 一个, b 从url}//这么写会报的错 }
<强>进口可以使用,进行重命名强>
进口的有很多种导入方式,
从& # 39;进口foo。/输出# 39; 进口{b, b} & # 39;。/输出# 39; 进口*从& # 39;OBj。/输出# 39; 从& # 39;进口{一}。/输出# 39; 进口和BB {b} & # 39;。/输出# 39; 进口c, d{} & # 39;。/输出# 39;
导入的方式和导出有些关联,我们在下面说导出的时候,对以上这些导入方式进行逐一介绍
exoprt和出口默认
将exoprt和出口默认放在一起,因为它们关联性很大
简单说:出口是导出,出口默认是默认导出
<强>一个模块可以有多个出口,但是只能有一个出口违约,违约可出口以和多个出口共存强>
出口默认为默认导出,导出的是用{}包裹的一个对象,以键值对的形式存在
导出的方式不同,导入的方式也就不同,
<强>所以建议同一个项目下使用同一的导入导出方式,方便开发强>
出口违约解构以后就是出口
通过两个直观的演示看下出口和出口违约的区别
先看一段代码(出口)
输出。js
从& # 39;进口{一}。/output.js& # 39;//此处的进口出口{一}和{一},两个一个是一一对应关系 console.log (a)//=祝辞valueA1
留意上面的代码其出口{一}导中出的,和进口{一}导入的一个是同一个一个
再看一段代码(出口违约)
const=& # 39; valueA1& # 39; 出口违约{}
输入。js
从& # 39;进口美国广播公司(abc)。/output.js& # 39;//此处的出口和违约{一},不是一个, console.log (abc)//=祝辞{:& # 39;valueA1& # 39;}
我们做了些改动,但是输出没有变化,进口导入的是出口默认下的对象,叫什么名字都可以,因为只会存在一个出口默认
exoprt和出口默认混合使用
exoprt和出口默认在同一个模块中同时使用,是支持的,虽然我们一般不会这么做
看一个栗子
输出。js
进口obj, {a、b} & # 39;。/输出# 39; console.log(一个);//=祝辞valueA1 console.log (b);//=祝辞valueB1 console.log (obj);//=祝辞{b: & # 39; valueB1& # 39;, d: & # 39; valueD1& # 39;, foo:[功能:foo]}
作为重命名
通过exoprt违约和出口导出的在进口引入时都支持通过,进行重命名