模块规范

CommonJS

  • module.exports, exports 导出模块
  • require 加载模块, CommonJS

    同步,服务端。
    实践者: nodejs

ES6

  • export, export default 导出模块
  • import 加载模块, ES6

    支持 CommonJS 规范。

CMD

另一种 CommonJS 在浏览器上的解决方案,更偏向 CommonJS 规范 。
一个文件就是一个模块,和 ES6 中标准的 commonjs 规范类似。

推崇: 依赖就近。使用这个模块前,把依赖的模块 require 进来即可。
实践者: seajs

AMD

  • define 定义模块

    异步,浏览器端。 一种 CommonJS 在浏览器上的解决方案。
    把依赖前置在依赖数组中。
    推崇: 依赖前置。把依赖前置在依赖数组中。
    实践者: requirejs

总结

规范 AMD CMD CommonJs
实践 RequireJs SeaJs nodeJs

其实只有 CommonJs 规范,其他规范都是 CommonJs 在不同地方的不同实现方式,解决不同的问题而已。
地方: 浏览器、服务器。
实现方式: 设计理念、执行顺序。
解决的问题: 宽带、性能。

原文:  https://www.cnblogs.com/daysme/p/9066306.html

​

js 模块化规范的更多相关文章

  1. JS 模块化 - 02 Common JS 模块化规范

    1 Common JS 介绍 Common JS 是模块化规范之一.每个文件都是一个作用域,文件里面定义的变量/函数都是私有的,对其他模块不可见.Common JS 规范在 Node 端和浏览器端有不 ...

  2. JS模块化规范CMD之SeaJS

    1. 在接触规范之前,我们用模块化来封装代码大多为如下: ;(function (形参模块名, 依赖项, 依赖项) { // 通过 形参模块名 修改模块 window.模块名 = 形参模块名 })(w ...

  3. JS模块化规范CommonJS,AMD,CMD

    模块化是软件系统的属性,这个系统被分解为一组高内聚,低耦合的模块.理想状态下我们只需要完成自己部分的核心业务逻辑代码,其他方面的依赖可以通过直接加载被人已经写好模块进行使用即可.一个模块化系统所必须的 ...

  4. js模块化规范

    1. CommonJS 用于服务端模块化编程,比如nodejs就采用此规范: 一个文件就是一个模块,require方法用来加载模块,该方法读取一个文件并执行,最后返回文件内部的module.expor ...

  5. js模块化规范—AMD规范

    AMD规范说明 AMD全称是:Asynchronous Module Definition(异步模块定义),github地址 是专门用于浏览器端, 模块的加载是异步的 AMD规范基本语法 定义暴露模块 ...

  6. js模块化规范—概念和模块化进化史以及模块化的问题

    模块的概念 一个复杂的项目开发中,会写很多js文件,一个js文件执行某些特定的功能,那么每个js都可以称为一个模块,这就是模块的概念 每个js模块内部数据/实现是私有的, 只是向外部暴露一些接口(方法 ...

  7. js模块化规范AMD、CMD、CommonJS...

    1. AMD 1.1 什么是AMD? AMD 英文名 Asynchronous Module Definition ,中文名 异步模块定义 .这是一个浏览器模块化开发的规范. 由于浏览器环境执行环境的 ...

  8. js模块化规范—CMD规范

    CMD规范说明 专门用于浏览器端, 模块的加载是异步的 ,模块使用时才会加载执行,github地址 CMD基本语法 定义暴露模块 //定义有依赖的模块 define(function(require, ...

  9. js模块化规范—commonjs

    commonjs规范说明 每个js文件都可当作一个模块 在服务器端: 模块的加载是运行时同步加载的(不会阻塞,等待时间回比较长).在浏览器端: 模块需要提前编译打包处理 commonjs规范基本语法 ...

随机推荐

  1. linux下卸载mysql(rpm)

    linux下卸载mysql 查看是否安装了mysql的组件 rpm –qa |grep –I mysql 卸载前关闭mysql服务 service mysql status service mysql ...

  2. Qt浅谈之一:内存泄露(总结)

    一.简介       Qt内存管理机制:Qt 在内部能够维护对象的层次结构.对于可视元素,这种层次结构就是子组件与父组件的关系:对于非可视元素,则是一个对象与另一个对象的从属关系.在 Qt 中,在 Q ...

  3. emmm

    #include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; st ...

  4. Intellij IDEA将java源码打成jar包

  5. ajax实现图片上传

    1.创建formData表单,模拟表单传递数据(formData有兼容性问题) var formData = new FormData();2.获取到相应的元素 var jobName = $(&qu ...

  6. CXF+Spring+Hibernate实现RESTful webservice服务端实例

    1.RESTful API接口定义 /* * Copyright 2016-2017 WitPool.org All Rights Reserved. * * You may not use this ...

  7. Python进阶【第十一篇】模块(下)之常用模块

    内置模块是Python自带的功能,在使用内置模块相应的功能时,需要[先导入]再[使用] 一.time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳 ...

  8. Pytorch-学习记录 卷积操作 cnn output_channel, etc.

    参考资料: pytorch中文文档 http://pytorch-cn.readthedocs.io/zh/latest/

  9. close yield

    close的方法主要是关闭子生成器,需要注意的有4点: 1.如果生成器close后,还继续next,会报错StopIteration   [图片]     2.如果我捕获了异常,将GeneratorE ...

  10. php 数字变汉字

    //数字变汉字 function getTheWord($num) { $arr_n = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九', ...