JavaScript中AMD和ES6模块导入导出的比较案例

  介绍

这篇文章主要介绍了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违约和出口导出的在进口引入时都支持通过,进行重命名

JavaScript中AMD和ES6模块导入导出的比较案例