第三阶段-JavaScript模块化

AMD/CMD //jQuery不支持CMD规范 引入的jQuery版本不能低于1.7以下

AMD:异步模块定义 //根据页面定位

AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。

//引用模块

require([module],callback);

//我们使用require这个方法加载我们需要的模块

// require方法有三个参数:

// 第一个参数是一个数组,这个数组表示引入模块的路径可引多个路径即使只有一个也要写[ ]

// 第二个参数是回调函数(成功)

//只有全部成功触发

// 第三个参数是回调函数(失败)

require(["js/test.02"]),function(){

//回调函数加载成功后触发

alert("成功");

},function(){

alert("失败");

}

// requireJs会定义三个变量:define、require、requireJs





define(["jquery"],function(){ });


require.config({ //用来配置requireJs

paths:{ //页面加载的路径

"jquery" : ["//资源地址"," "], //公共资源模块后不要加后缀名 "test1" : "js/test1",

"test2" : "js/test2", //自己命名的可以自定义,引用公用的必须写"jquery"

}

})

require(["jquery"],function($){ console.info($("html").html) });



<script src="js/require2.1.11.js" data-main= "js/text" type="text/javascript" charset="utf-8"></script> //data-main= "js/text"这样写意味着以根目录加载 文件中的路径要注意!


CMD:通过sea.js定位

在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范。该规范明确了模块的基本书写格式和基本交互规则。

seajs.use([test01],function{ });

//use方法存在两个参数:

//第一个参数是一个数组,这个数组和requireJs中require方法一样,与其不一样的的地方就是:如果依赖的参数只有一个,可以省略数组而require方法不行,即使只有一个也要写[ ]。


define(function(require,exports,module){

//require用来引用所需模块

//exports声明暴露

//module模块管理

var test03=require("test03");

exports.data02=" "; //暴露后可以调用 变成公用的了

})












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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值