前端模块化AMD,CMD,以及common.js的基本理解

** 1,AMD规范**
AMD 即 Asynchronous Module Definition,中文名是“异步模块定义”的意思。它是一个在浏览器端模块化开发的规范,AMD 是 RequireJS 在推广过程中对模块定义的规范化产出,所以AMD规范的实现,就是的require.js了

特点 :异步加载,不阻塞页面的加载,能并行加载多个模块,但是不能按需加载,必须提前加载所需依赖

Amd 的规范中定义了两个重要的api

define(id?,[]?,callbakc): //定义声明模块,参数id 模块id标识(可选),参数二是一个数组(可选),依赖其他模块,最后是回调函数

require([module],callback)?/ 加载模块,参数一,是数组,指定加载的模块,参数二回调函数,模块加载完成后执行
还有一个配置属性API:

require.config({

baseUrl: //基本路径

paths:// 对象,对外加载的模块名称 : 键值关系,键:自定义模块名称,值 :文件名或者文件路径(不要写文件后缀.js),可以是字符串,数组(如果第一个加载失败,会加载第二个)

shim://对象,配置非AMD 模式的文件,每个模块要定义(1)exports:值(指在js文件暴露出来的全局变量,如:window.a)(2)deps: 数组,表明该模块的依赖性

})

#2,CMD规范
CMD规范是阿里的玉伯提出来的,实现js库为sea.js。 它和requirejs非常类似,即一个js文件就是一个模块,但是CMD的加载方式更加优秀,是通过按需加载的方式,而不是必须在模块开始就加载所有的依赖。
es6 的module规范

##3,es6 的module规范

ES6 在语言标准的层面上,实现了模块功能,而且非常简单,ES6到来,完全可以取代 CommonJS 和 AMD规范,成为浏览器和服务器通用的模块解决方案。由vue,Angular React这些mvvm 模式的框架发展,让前端的编程变得模块化,组件化。

特点:1. ES6 模块之中,顶层的this指向undefined,即不应该在顶层代码使用this。

2. 自动采用严格模式"use strict"。须遵循严格模式的要求

3. ES6 模块的设计思想是尽量的静态化,编译时加载”或者静态加载,编译时输出接口

4. ES6 模块export、import命令可以出现在模块的任何位置,但是必须处于模块顶层。如果处于块级作用域内,就会报错

5.ES6 模块输出的是值的引用

模块功能主要由两个命令构成:export 和 import。

export:用于规定模块的对外接口,
**export命令除了输出变量,还可以输出函数或类(class),不同的数据类型

import:用于输入其他模块提供的功能。
**使用export命令定义了模块的对外接口以后,其他 JS 文件就可以通过import命令加载这个模块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值