第四阶段:CMD规范
CMD规范是阿里的玉伯提出来的,实现js库为sea.js。
它和requirejs非常类似,即一个js文件就是一个模块,
但是CMD的加载方式更加优秀,是通过按需加载的方式,而不是必须在模块开始就加载所有的依赖。
优点:
同样实现了浏览器端的模块化加载。
可以按需加载,依赖就近。
缺点:
依赖SPM打包,模块的加载逻辑偏重。
AMD和CMD的区别,
  • AMD是对于依赖的模块提前执行,而CMD是延迟执行。
  • AMD推崇依赖前置(requireJS 2.0 后也改为了延迟执行),而CMD推崇依赖就近,即只在需要用到某个模块的时候再require。
SeaJs
  • https://github.com/seajs/seajs
  • 准确的说 CMD 是 SeaJS 在推广过程中对模块定义的规范化产物。
  • or
  • SeaJS 是一个遵循 CMD 规范的 JavaScript 模块加载框架,可以实现 JavaScript 的 CMD 模块化开发方式
  • SeaJS 只是实现 JavaScript的模块化和按需加载,并未扩展 JavaScript 语言本身。
  • SeaJS 的主要目的是让开发人员更加专注于代码本身,从繁重的 JavaScript 文件以及对象依赖处理中解放出来。
Seajs 追求简单、自然的代码书写和组织方式,具有如下核心特性:
  • 简单友好的模块定义规范:
  • Sea.js 遵循 CMD 规范,可以像 Node.js 一般书写模块代码。
  • 自然直观的代码组织方式:
  • 依赖的自动加载、配置的简洁清晰,可以让我们更多地享受编码的乐趣。
Sea.js 还提供常用插件,非常有助于开发调试和性能优化,并具有丰富的可扩展接口。
Demo   https://github.com/seajs/examples
  // AMDdefine(['./a','./b'], function (a, b) {// 依赖一开始就写好a.test();b.test();});// CMDdefine(function (require, exports, module) {// 依赖可以就近书写var a = require('./a');a.test();...//按需加载if (status) {var b = require('./b');b.test();}});
  // sea.js 的简单配置seajs.config({base: "../sea-modules/",alias: {"jquery": "jquery/jquery/1.10.1/jquery.js"}})// 加载入口模块seajs.use("../static/hello/src/main”)// 所有模块都通过 define 来定义define(function(require, exports, module) {// 通过 require 引入依赖var $ = require('jquery');var Spinning = require('./spinning');// 通过 exports 对外提供接口exports.doSomething = ...// 或者通过 module.exports 提供整个接口module.exports = ...});

Modularity(模块化-CMD规范)相关推荐

  1. 模块化 AMD与CMD 规范

    JavaSript模块规范 - AMD规范与CMD规范介绍 2014-02-19 13:12:01 分类: JavaScript JavaSript模块化 在了解AMD,CMD规范前,还是需要先来简单 ...

  2. JavaScript进阶(十二)JS 模块化编程规范-CommonJS、AMD、CMD、ES6

    文章目录 一.前言 二.AMD-异步模块定义 三.CMD-同步模块定义 四.CommonJS 规范 五.ES6 六.拓展阅读 一.前言 AMD.CMD.CommonJs是ES5中提供的模块化编程方案, ...

  3. Modularity(模块化-CommonJS规范)

    第二阶段: CommonJS规范 CommonJS就是一个JavaScript模块化的规范,该规范最初是用在服务器端的node的,前端的webpack也是对CommonJS原生支持的. 根据这个规范, ...

  4. JS 模块化 - 04 CMD 规范与 Sea JS

    1 CMD 规范介绍 CMD: Common Module Definition, 通用模块定义.与 AMD 规范类似,也是用于浏览器端,异步加载模块,一个文件就是一个模块,当模块使用时才会加载执行. ...

  5. JavaSript模块规范 - AMD规范与CMD规范介绍[转]

    原文地址:http://blog.chinaunix.net/uid-26672038-id-4112229.html JavaSript模块化 在了解AMD,CMD规范前,还是需要先来简单地了解下什 ...

  6. 浅析:前端模块化开发规范

    浅析:前端模块化开发规范 早期的模块化解决方案 NameSpace:命名空间模式 匿名闭包:IIFE模式 模块模式:IIFE+依赖传参 ES6之前的模块化解决方案 CommonJS模块化规范 AMD模 ...

  7. JavaScript 模块化编程规范

    JavaScript 模块化编程是一种组织代码的方式,可以将代码分成独立的小块,使得代码更易于维护.扩展和重用.常见的 JavaScript 模块化编程规范有 CommonJS.AMD.ES6 Mod ...

  8. Node.js模块化开发||Node.js中模块化开发规范

    JavaScript开发弊端 a.js b.js JavaScript在使用时存在两大问题,文件依赖和命名冲突. 生活中的模块化开发 软件中的模块化开发 app.j user.一个功能就是一个模块,多 ...

  9. Modularity(模块化-AMD规范)

    第三阶段: AMD规范(Asynchronous Module Definition:异步模块定义) CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作. AMD规范则是 ...

最新文章

  1. 操作系统实验4—磁盘调度
  2. 为什么大部分男生比女生高?原因让你意想不到
  3. Iptables入门教程
  4. Fedora 18在ASUS N6系列电脑上以太网卡驱动的安装
  5. asp不能做到的是什么
  6. jQuery特效:实现瀑布流
  7. 威纶触摸屏与S7-200SMART PLC通信的参数设置和连接电缆
  8. Rhino基础教程---三管混接(法二、法三)
  9. IP归属地解析之离线纯真数据库分享
  10. 百度搜索风云榜Rss
  11. 中国行政区域经纬度(免费下载)
  12. mysql 读写分离_详解MySQL读写分离
  13. JFianl项目中Controller层方法不进行权限校验-可以添加注解@UnCheck
  14. android弹球游戏小球运动,球球跳一跳跳舞弹球
  15. 人脑VS机器?AI时代经济决策的机遇与挑战?| AI TIME 27
  16. 平方米用计算机怎么打,平方厘米用电脑怎么打
  17. 物流手持PDA,无线巴枪
  18. 【现代控制理论】传递函数建立状态空间表达式
  19. 电机与matlab突然,电机与MATLAB(第2版)简介,目录书摘
  20. 关于GPS车载终端的研究

热门文章

  1. c语言计算N升纯净水的分子数,C语言编程题
  2. c语言数组的使用步骤,C语言中为什么要使用数组?详细图解数组的使用
  3. python 天勤 金叉 编程代码_Python量化策略开发框架,固定的套路、突破策略的福音...
  4. 计算机网络上机作业,204计算机网络上机大作业.docx
  5. Linux——安装之磁盘分区
  6. Vue extend 学习
  7. POJ 2287 - Tian Ji -- The Horse Racing(贪心)
  8. SQL Server数据库学习笔记-三大范式
  9. Android中软键盘弹出时关于布局的问题
  10. .net 中debug 微软内部代码