Sea.js 追求简单、自然的代码书写和组织方式,能够以简洁的方式管理JS代码,并能遵循CMD规范进行模块化的开发。
在实际开发中,首当其冲的问题就是如何与已有的JS代码进行集成,其中与JQuery的集成最为常见。在官方文档中记录有针对JQuery的改造方法,使其能与SeaJS进行集成。
1.官网中记录的改造JQuery方法
由于JQuery本身就有对AMD规范与CommonJS的支持,在其代码中包含以下定义:
if ( typeof module === "object" && module && typeof module.exports === "object" ) { module.exports = jQuery;
} else { window.jQuery = window.$ = jQuery; if ( typeof define === "function" && ) {
define( "jquery", [], function () { return jQuery; } );
}
}
我们只需要将其中的 define.amd 改为 define 即可。
2.其他改造JQuery方法
虽然JQuery本身没有直接支持CMD规范,但我们可以在已有JQuery基础上进行二次封装,使其变成支持CMD规范的模块:
define(function(){
//jquery源代码
return $.noConflict();
});
该方法将返回一个符合CMD规范的模块,这样SeaJS就可以对其进行管理与调用了。
以上两种方法都以简单有效的方式使JQuery兼容了SeaJS,任选其一均可。
参考资料:https://github.com/seajs/seajs/issues/971
http://www.tuicool.com/articles/bmuaEb
http://www.w3school.com.cn/jquery/core_noconflict.asp