我为什么学习SeaJs ?
【第一】:为了解决项目中资源文件版本号的问题,以及打包压缩合并等问题。
【第二】:好奇心和求知欲。【我发现很多知名网站也都在使用( qq空间 , msn , 淘宝 等等),而且 SeaJs 也得到了很好的推广与应用】。
【第三】:经过了解得知 淘宝的 玉伯 是 湖南炎陵 人,觉得他很牛X。
【强烈】给小伙伴们推荐一个 玉伯 的讲的 SeaJs PDF 学习资料,下载地址:
第一步 【 版本号问题的解决】 :首先大家可以到 seaJs.org 官网去下载一个 seajs 的 例子,以及文件,现在 sea.js 的版本 已经到 V 2.1.1 了
然后在项目中引入sea.js文件。
如图 :我的项目,目录如下图:
index.html 的源码如下:
<!DOCTYPE html> <html xmlns=> <head runat=> <meta http-equiv=content=/> <title>SeaJsDemo-操作</title> <script src=></script> </head> <body> <div style=> <!----------------------> <div id==>SeaJS-你也可以</div> <br /> <!----------------------> <div id==>Jquery-回调测试看看</div> </div> <script type=> seajs.config({ // 别名配置 paths: { : }, // 别名配置 alias: { : , : , : }, preload: [],: , //基础路径 map: [[/^(.*\.(?:css|js))(.*)$/i, ]], //map,批量更新时间戳 charset: }); //-------seajs.use为入口模块,也可以用 data-main="";(区别在于use可以加载多个入口函数,以及做一些回调的操作)------------ seajs.use([, ], function (i, $) { alert(); //----------调用init中对外公开的接口-------------------------------- i.alertFun(); //----------习惯了在页面<script>写$就可以了------------------- $(function () { $().click(function () { alert(); }) }) }); </script> </body> </html>
View CodeSeaJs里,你必须知道那些东西 :
【 1】. define
define 是一个全局函数,用来定义模块【每一个js文件都是一个小模块】
define(function( require , exports , module ){
//
require:
是一个方法,接受 模块标识 作为唯一参数,用来获取其他模块提供的接口
// exports: 是一个对象,用来向外提供模块接口
// module: 是一个对象,上面存储了与当前模块相关联的一些属性和方法
})
init.js 文件源码 :
//-------------------------------------------- define(function (require, exports, module) { require(); require(); //----对外提供公共的接口------ exports.alertFun = function () { //...................... alert(); }; //----暴露到全局------------- //module.exports = function () { // //...................... //}; });
【 2】. seajs.config
配置一些全局的东西, 版本问题可以在这里解决 详细说明如下:
<script type=>
seajs.config({
// 路径配置
paths: {
:
},
// 别名配置
alias: {
: ,
: ,
:
},
preload: [],: , //基础路径
map: [[/^(.*\.(?:css|js))(.*)$/i, ]], //map,批量更新时间戳
charset: });
</script>
【3】. seajs.use