什么是前端模块化?

  • Post author:
  • Post category:其他


使用原始的JavaScript代码,当多个程序员在不同的js文件中命名了同名的变量或函数,会互相影响。

可以使用闭包来解决,但闭包没法实现代码的复用:当你在aaa.js文件中在闭包里定义了一个函数sum(),bbb.js文件里无法使用这个函数。

这种代码的编写方式对js文件的依赖顺序几乎是强制性的

但是当js文件过多,比如有几十个的时候,弄清楚它们的顺序是一件比较麻烦的事情。



一、自己的模块化方法来解决以上问题:



aaa.js文件中导出要用到的数据

在这里插入图片描述



bbb.js文件中导入要用的数据

在这里插入图片描述



二、常见的模块化规范

前端模块化开发已经有了很多既有的规范,以及对应的实现方案。

常见的模块化规范commonJS,AMD,CMD,ES6中的modules

这些模块化规范的写法可能不一样,但核心都是导入和导出



模块化有两个核心:导入和导出



1.commonJS的导出(但不能在js文件中直接使用,没有底层代码的支撑)

在这里插入图片描述



2.commonJS的导入

在这里插入图片描述



三、ES6的modules(导入import,导出export)

注意:使用es6的模块化,需要在HTML文件中加入type=‘module’(未安装webpack时),浏览器有底层代码可以支撑import和export

在这里插入图片描述



1. 第一种到导出方法:导出对象

在这里插入图片描述

导入方法:

在这里插入图片描述



第二种导出方法:直接导出变量,函数和类

在这里插入图片描述

导入方法:

在这里插入图片描述



第三种导出方法:export default

export default:用这个方法导出,导出和导入时不用加{ }。

导入时,可以自己命名,不跟导出时的名字一样。


注意:export default 在同一个模块中,不允许同时存在多个,只能一个

export default导出:

在这里插入图片描述

导入方法:

在这里插入图片描述



版权声明:本文为weixin_50240716原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。