模块规范

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. golang学习笔记14 golang substring 截取字符串

    golang学习笔记14 golang substring 截取字符串golang 没有java那样的substring函数,但支持直接根据 index 截取字符串mystr := "hel ...

  2. calendar 模块

    calendar模块,即日历模块,提供了对日期的一些操作方法,和生成日历的方法 注:星期一是默认的每周第一天,星期天是默认的最后一天.更改设置需调用calendar.setfirstweekday() ...

  3. <转>jmeter(五)JDBC Request

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...

  4. 一名3年工作经验的java程序员应该具备的职业技能

    一名3年工作经验的Java程序员应该具备的技能,这可能是Java程序员们比较关心的内容.我这里要说明一下,以下列举的内容不是都要会的东西—-但是如果你掌握得越多,最终能得到的评价.拿到的薪水势必也越高 ...

  5. IP代理(proxies参数)

    在爬虫的过程中,我们经常会遇见很多网站采取了防爬取技术,或者说因为自己采集网站信息的强度和采集速度太大,给对方服务器带去了太多的压力. 如果你一直用同一个代理ip爬取这个网页,很有可能ip会被禁止访问 ...

  6. sql server 游标的简单用法

    sql server游标: --定义游标 declare cursor1 cursor for select ID,Name from A --打开游标 open cursor1 declare @i ...

  7. GC Root 对象有哪些

    (1)虚拟机(JVM)栈中引用对象 (2)方法区中的类静态属性引用对象   (3)方法区中常量引用的对象(final 的常量值) (4)本地方法栈JNI的引用对象

  8. AJAX(表单验证)/JSON之一

    ## 什么是Ajax AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). 1. 异步通信:浏览器利用独立的线程与服务器进行通信, ...

  9. javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception

    type Exception report message Servlet.init() for servlet springmvc threw exception description The s ...

  10. php 常用代码片断

    参考: https://www.jianshu.com/p/f5303225ef92 http://www.phpxs.com/code/php/