摘要:是中提供的模块化编程的方案,是中新增。所以人们产生了这样的需求,希望有支持两种风格的通用模式,于是通用模块规范诞生了。模块化对模块进行导出导入的
AMD、CMD、CommonJs、UMD是ES5中提供的模块化编程的方案,import/export是ES6中新增。
1.AMD-异步模块定义
AMD是RequireJS在推广过程中对模块定义的规范化产出,它是一个概念,RequireJS是对这个概念的实现,就好比JavaScript语言是对ECMAScript规范的实现。AMD是一个组织,RequireJS是在这个组织下自定义的一套脚本语言。
RequireJS:是一个AMD框架,可以异步加载JS文件,按照模块加载方法,通过define()函数定义,第一个参数是一个数组,里面定义一些需要依赖的包,第二个参数是一个回调函数,通过变量来引用模块里面的方法,最后通过return来输出。
是一个依赖前置、异步定义的AMD框架(在参数里面引入js文件),在定义的同时如果需要用到别的模块,在最前面定义好即在参数数组里面进行引入,在回调里面加载。
require([module], callback);
2.CMD---是SeaJS在推广过程中对模块定义的规范化产出,是一个同步模块定义,是SeaJS的一个标准,SeaJS是CMD概念的一个实现,SeaJS是淘宝团队提供的一个模块开发的js框架
通过define()定义,没有依赖前置,通过require加载jQuery插件,CMD是依赖就近,在什么地方使用到插件就在什么地方require该插件,即用即返,这是一个同步的概念。
3.commonJS规范---是通过module.exports定义的,在前端浏览器里面并不支持module.exports,通过node.js后端使用的。Nodejs端是使用CommonJS规范的,前端浏览器可以利用browserify插件支持commonJS,可以讲js文件打包到一个main.js,所以不会出现浏览require新模块的时候,需要异步加载的情况,更不会出现浏览器假死。
浏览器不兼容CommonJS的根本原因,在于缺少四个Node.js环境的变量(module、exports、require、global)
输出方式有2种:默认输出---module export 和带有名字的输出---exports.area。
4.UMD-通用模块规范
既然CommonJs和AMD风格一样流行,似乎缺少一个统一的规范。所以人们产生了这样的需求,希望有支持两种风格的“通用”模式,于是通用模块规范(UMD)诞生了。为了保证通用性,牺牲的易用性,这个模式略难看,但是它兼容了AMD和CommonJS,同时还支持老式的“全局”变量规范。
5.ES6模块化---export/import对模块进行导出导入的
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/101571.html
摘要:二模块化误区加快加载和执行的速度,一直是前端优化的一个热点。结果文件减少,也达到了预期的效果。避免不必要的延迟。最后再根据文件的功能类型,来决定是放在页面的头部还是尾部。 注:本文是纯技术探讨文,无图无笑点,希望您喜欢 一.前言 软件行业极其缺乏前端人才这是圈内的共识了,某种程度上讲,同等水平前端的工资都要比后端高上不少,而圈内的另一项共识则是——网页是公司的脸面! 几年前,谷歌的一项...
摘要:模块演化简史从属于笔者的开发基础与工程实践。首个采样该设计模式的界面库当属,其是创建于年。允许我们定义模块,并且在显式地声明其依赖模块而由框架完成自动注入。而最后的模块化规范定义于年正式发布,也就是被命名为。 JavaScript 模块演化简史 从属于笔者的 Web 开发基础与工程实践。本文主要总结自 The Evolution of JavaScript Modularity、Nat...
摘要:模块化编程,已经成为一个迫切的需求。随着网站功能逐渐丰富,网页中的也变得越来越复杂和臃肿,原有通过标签来导入一个个的文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作模块复用单元测试等等一系列复杂的需求。 随着网站逐渐变成互联网应用程序,嵌入网页的Javascript代码越来越庞大,越来越复杂。网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发...
摘要:挂机科了次使用这个结构,匿名函数就有了自己的执行环境或闭包,然后我们立即执行。注意,匿名函数的圆括号是必需的,因为以关键字开头的语句通常被认为是函数声明请记住,中不能使用未命名的函数声明。 这是专门探索 JavaScript 及其所构建的组件的系列文章的第 20 篇。 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 如果你错过了前面的章节,可以在这里找到它们: ...
摘要:作为新手,发现对于其的模块机制,不是很理解。的概念出现有效规范了的模块化规范。不再需要对象作为命名空间比如对象,未来这些功能可以通过模块提供。浏览器使用模块的语法如下导出对象和变量导出类对象引入加载机制详见引用资料高静的并行加载与顺序执行 1. 概述 js发展初期暴露了其缺陷:缺乏模块,后来提出了commonJS规范来规范其模块的规范。作为JavaScript新手,发现对于其JavaS...
摘要:作为新手,发现对于其的模块机制,不是很理解。的概念出现有效规范了的模块化规范。不再需要对象作为命名空间比如对象,未来这些功能可以通过模块提供。浏览器使用模块的语法如下导出对象和变量导出类对象引入加载机制详见引用资料高静的并行加载与顺序执行 1. 概述 js发展初期暴露了其缺陷:缺乏模块,后来提出了commonJS规范来规范其模块的规范。作为JavaScript新手,发现对于其JavaS...
阅读 3477·2023-04-25 19:56
阅读 1589·2021-11-12 10:36
阅读 1737·2021-11-08 13:19
阅读 1501·2019-08-30 14:06
阅读 2992·2019-08-30 11:01
阅读 1671·2019-08-29 13:23
阅读 2667·2019-08-29 11:18
阅读 3382·2019-08-26 13:35