es6的模块化
es6的模块化是浏览器端和服务器端通用的模块开发规范,其设计思想就是尽量的静态化,在编译时就确定模块的依赖关系,以及输入输出的变量
其模块化规范中定义:
每个js文件都是一个独立的模块
导入其他成员用import关键字
向外共享成员变量用export关键字
AMD
异步加载模块,主要用于浏览器,其定义需要使用requireJs
-
AMD具有以下几个特性:
- 采用异步方式加载模块,模块的加载不影响它后面语句的运行.
- 所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行.
- 推崇依赖前置,在定义模块的时候就要声明其依赖的模块
-
AMD的使用
使用require.js来实现AMD规范的模块化:用require.config()指定引用路径。用define()来定义模块用require来加载模块。
define('moduleName',['a','b'],function(ma, mb) { return someExportValue; }) require(['a', 'b'], function(ma, mb) { // do something })
CMD
通用模块定义,就近依赖,延迟执行,其定义使用用SeaJs
-
CMD具有以下几个特性:
1.采用异步方式加载模块,模块的加载不影响它后面语句的运行.
2.推崇就近依赖,只有在用到某个模块的时候再去require -
CMD的使用
使用define来定义define(id?, deps?, factory)
factory是一个函数,有三个参数,function(require, exports, module)
require 是一个方法,接受 模块标识 作为唯一参数,用来获取其他模块提供的接口:require(id)
exports 是一个对象,用来向外提供模块接口
module 是一个对象,上面存储了与当前模块相关联的一些属性和方法
// 定义模块 module.js define(function(require, exports, module) { var $ = require('jquery.min.js') $('div').addClass('active'); }); // 加载模块 seajs.use(['module.js'], function(my){ });
原文地址:http://www.cnblogs.com/qianduan-Wu/p/16799524.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性