首页
学习
活动
专区
工具
TVP
发布

JS模块化编程以及AMDCMD规范、Webpack

提示 由于CommonJS和AMD都十分流行,但似乎缺少一个统一的规范。于是,UMD(通用模块规范)出现了,它可以同时支持这两种风格。...虽然这个模式的写法比较难看,但是,它同时兼容了AMD和CommonJS,而且还支持老式的全局变量规范。 什么是JS模块化 先想一想,为什么模块很重要?...这就是AMD规范诞生的背景。 AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。...目前,主要有两个Javascript库实现了AMD规范:require.js和curl.js。本系列的第三部分,将通过介绍require.js,进一步讲解AMD的用法,以及如何将模块化编程投入实战。...jquery.js,相当于默认配置了; 依赖非AMD规范的模块如果没用define(...)

2.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

AMDCMD、RequireJS

1、为什么要使用模块化 最主要的目的 解决命名冲突 便于依赖管理 其他价值 提高代码可读性 代码解耦,提高复用性 2、CMDAMD、CommonJS 规范分别指什么?...有哪些应用 1、CMD规范 CMD 即Common Module Definition通用模块定义,CMD规范是国内发展出来的,就像AMD有个requireJS,CMD有个浏览器的实现SeaJS,SeaJS....addClass('active'); }); // 加载模块 seajs.use(['myModule.js'], function(my){ }); 1、AMD规范 AMD 即Asynchronous...它是一个在浏览器端模块化开发的规范;由于不是JavaScript原生支持,使用AMD规范进行页面开发需要用到对应的库函数,也就是大名鼎鼎RequireJS,实际上AMD 是 RequireJS 在推广过程中对模块定义的规范化的产出...image.png 使用AMD规范实现模块加载,使用RequireJS打包 代码 效果展示

1.2K30

【说站】jsAMDCMD的区别

jsAMDCMD的区别 说明 1、对于依赖模块,AMD提前执行,CMD延迟执行。 然而,RequireJS从2.0开始,也改为可延迟执行(根据不同的写法和不同的处理方法)。...CMD高度赞扬aslazyaspossible。 2、AMD崇尚前置,CMD崇尚就近,只有在使用某个模块时才去require。 实例 // AMD define(['./a', '....{  // 依赖必须一开始就写好      a.doSomething()        // 此处略去 100 行        b.doSomething()        ... }); // CMD.../b')    // 依赖可以就近书写       b.doSomething()    // ... }); 以上就是jsAMDCMD的区别,希望对大家有所帮助。...更多js学习指路:js教程 推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。 收藏 | 0点赞 | 0打赏

73720

JavaScript中的三种模块化规范AMD CMD CommonJS

因为JS现在的语法越来越完善,正在向强语言进化,强语言本身就自带模块化。 AMD AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。...CMD CMD规范AMD相似,尽量保持简单,并且与CommonJS和NodeJS的Modules规范保持了很大的兼容性。...node.js的模块系统,就是参照CommonJS规范实现的。...在CommonJS中,有一个全局性方法require(),用于加载模块 浏览器端 -- AMD(requirejs) CMD(Seajs) 因为服务器与APP都是加载的本地的资源,所以,不用回调这种操作...因为上面这个原因,浏览器端,只能选择 AMD - CMD 两种规范,异步执行,不阻塞线程。 了解SeaJS,以及Seajs与requirejs之间的区别?

34500

AMD规范演化

上面的方法解决的方法被覆盖的问题,但没有解决模块化依赖的问题,这个问题的解决就要靠我们下面要说的AMD规范。...AMD模块开发规范 上面模块话的开发虽然解决的js的方法的覆盖问题,但js依赖的问题仍然存在,解决这个问题的终极方案就是AMD规范。...AMD规范就是其中比较著名一个,全称是Asynchronous Module Definition,即异步模块加载机制。...从它的规范描述页面看,AMD很短也很简单,但它却完整描述了模块的定义,依赖关系,引用关系以及加载机制。...规范 (本文完) 作者:老付 如果觉得对您有帮助,可以下方的订阅,或者选择右侧捐赠作者,如果有问题,请在捐赠后咨询,谢谢合作 如有任何知识产权、版权问题或理论错误,还请指正。

69050

重新理解前端系列 — AMDCMD

起源 其实对于AMDCMD的不同,之前一直是拘泥在使用上的不同。没有深刻的认识为什么会有不同,其实主要是因为浏览器端和 Node 端不同性能特点和瓶颈带来的不同。...早期的js模块化主要用于浏览器端,主要的需求和瓶颈在于带宽,需要将js从服务端下载下来,从而带来的网络性能开销,因此主要是满足对于作用域、按需加载的需求。...因此AMD(异步模块定义)的出现,适合浏览器端环境。...而后出现Node之后,主要的性能开销不再是网络性能,磁盘的读写和开销可以忽略不计;CMD的出现更符合Node 对于CommonJS的定义和理解,在运行时进行加载,引入时只是产生引用指向关系。...标签,使用async属性使js能进行异步加载, IE等不兼容async字段的,通过监听 load 、 onreadystatechange 事件执行回调,监听脚本加载完成。

61910

模块化-CommonJs、AMDCMD

在了解AMDCMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发?模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题进行系统性的分解以之处理。...AMD (Asynchronous Module Definition) AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。AMD规范是异步加载模块,允许指定回调函数。...CMD (Common Module Definition) CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。CMD规范AMD 很相似,解决同样问题,只是运行机制不同。...AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。AMD规范在浏览器环境中异步加载模块,而且可以并行加载多个模块。...AMD 的 API 默认是一个当多个用,对于依赖的模块,AMD 推崇提前执行(依赖前置) CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。

35330

CommonJS、CMDAMD、ES6 Module

CommonJS 不适用浏览器是因为:此规范是同步加载模块,对于服务器端来说,所有的模块都是在本地磁盘,等待模块时间就是硬盘读取文件时间,很小,但对浏览器而言,设计到网速、代理等原因,同步加载会造成阻塞...,浏览器处于“假死”状态,所以浏览器端出现了 AMD 规范。...AMD(异步模块定义) & CMD(通用模块定义) AMDCMD 都是用来解决浏览器异步加载的问题。...AMD 是 Asynchronous Module Definition 的缩写,即“异步模块定义”,它采用异步方式加载模块(模块的加载不影响它后面语句的运行),且会提前加载。...AMD 同 CommonJS 一样也是使用 require 加载模块,不同的是,AMD 要求两个参数 require([Module],callback) CMDAMD 最大的不同就是:CMD 推崇依赖就近

35710

模块化之AMDCMD、UMD、commonJS

,现在主流的几个模块化规范:commonJS、AMDCMD、UMD CommonJS: 这应该是最早的JavaScript模块化编程,主要是用于服务端,nodeJS就是使用commonJS,我们最常用的...AMD是requireJS推广过程的规范产出,支持异步,所以AMD也是通过require加载模块目前主要有两个Javascript库实现了AMD规范:require.js和curl.js。...CMD(Cmomon Module Definition): CMD是大神玉伯提出的,然后根据这个规范写了个seaJS。因为AMD想兼容浏览器和后台,所以大神就搞了个专注于浏览器的CMD。...和commonJS的规范,也就是AMD和commonJS的一个糅合。...CMD:异步加载,专注于浏览器,实现的是seaJS,玉伯大神提出的,使用时加载。 UMD:AMD和commonJS的结合,可以服务端使用也可以浏览器使用。

65440
领券