JS模块化(了解)

南楼画角 提交于 2019-11-28 05:15:31

之前有的

命名空间,COMMONJS,AMD/CMD/UMD,ES6 module

1.什么是命名空间

库名.类别名.方法名

弊端:在命名空间重复生命,要记住完整的路径名(而且很长)

var NameSpace = {}
NameSpace.type = NameSpace.type || {} //已经定义了就是它自己,没有定义就赋值一个空对象给它,避免命名空间覆盖的问题
NameSpace.type.method = function () {}

2.什么COMMONJS 

  Modules/1.1.1

  一个文件为一个模块

  通过module.exports暴露模块接口

  通过require引入模块

  同步执行

3.AMD(Async Module Definition)----异步模块定义

  使用define方法定义模块

  使用require加载模块

  RequireJS

  依赖前置,提前执行

4.CMD(Common Module Definition)

  一个文件一个模块

  使用define来定义一个模块

  使用require来加载一个模块

  Sea JS

  尽可能懒执行

 

5.UMD(Universal Module Definition)-----通用模块定义

  通用解决方案

  三个步骤

    判断是否支持AMD

    判断是否知此恨commonJS 

    如果都没有就定义为全局变量

6.ESM(EcmaScript Module)

  一个文件一个模块

  export/import

   

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!