当前位置: 首页 > article >正文

什么是UMD

UMD 叫做通用模块定义规范(Universal Module Definition)。也是随着大前端的趋势所诞生,它可以通过运行时或者编译时让同一个代码模块在使用 CommonJs、CMD 甚至是 AMD 的项目中运行。未来同一个 JavaScript 包运行在浏览器端、服务区端甚至是 APP 端都只需要遵守同一个写法就行了。

它没有自己专有的规范,是集结了 CommonJs、CMD、AMD 的规范于一身,我们看看它的具体实现:

(function (root, factory) {if (typeof define === 'function' && define.amd) {// AMD. Register as an anonymous module.define(['exports', 'b'], factory);} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {// CommonJSfactory(exports, require('b'));} else {// Browser globalsfactory((root.commonJsStrict = {}), root.b);}
}(this, function (exports, b) {//use b in some fashion.// attach properties to the exports object to define// the exported module properties.exports.action = function () {};
}));

下面以 JQuery 为例

不难发现,它在定义模块的时候回检测当前使用环境和模块的定义方式,将各种模块化定义方式转化为同样一种写法。它的出现也是前端技术发展的产物,前端在实现跨平台的道路上不断的前进,UMD 规范将浏览器端、服务器端甚至是 APP 端都大统一了,当然它或许不是未来最好的模块化方式,未来在 ES6+、TypeScript、Dart 这些拥有高级语法的语言回代替这些方案。

http://www.lryc.cn/news/2414549.html

相关文章:

  • 32*32 点阵字库 linux,点阵字库-linux_wuliqiang-ChinaUnix博客
  • Preparedstatement的使用
  • 达梦数据库分区表
  • 皮尔森、斯皮尔曼,肯德尔相关系数及其python实现
  • adb工具包的安装和使用
  • 如何在windows上搭建DZ(Discuz!)论坛?
  • Jqgrid教程(简单上手)
  • C# 正则表达式完全指南:基础、进阶与实战示例
  • C语言 | 指针详解
  • Linux命令之pkill命令
  • 必收藏:最全SQL讲解!
  • WSUS服务的部署
  • CTex下载地址和方法
  • Tomcat启动成功但是无法访问http://localhost:8080/
  • gcc编译器及C语言基础
  • ISE工程建立(含IP核建立)和chipscope实验
  • ARM学习-ARM指令集详解
  • 数据结构typedef、L和*L、Elemtype *elem和Elemtype elem[maxsize]
  • Quartus-II13.1三种方式实现D触发器及时序仿真
  • Python详细介绍及使用(基础篇)
  • openfire学习之安装
  • Linux下 itoa,atoi 函数的实现
  • 三维重建(7)--运动恢复结构SfM系统解析
  • 无线渗透----扫描附近WiFi(windows系统)
  • location.href用法总结(转)
  • vue3如何实现使用SortableJs插件进行表格内的数据项拖拽排序
  • 深度学习之目标检测(九)--YOLOv3 SPP理论介绍
  • JenKins 自动化打包上传到服务器的fir 工具
  • CSS基础:插入CSS样式的3种方法
  • 7.1 函数的基本概念和定义