seajs下require书写约定实例分析
本文实例讲述了seajs下require书写约定。分享给大家供大家参考,具体如下:
require书写约定
使用Sea.js书写模块代码时,需要遵循一些简单规则。
只是书写和调试时的规范!!!构建后的代码完全不需要遵循下面的约定!!!!!!
1.正确拼写
模块factory构造方法的第一个参数必须命名为require。
//错误! define(function(req){ //... }); //正确! define(function(require){ //... });
2.不要修改
不要重命名require函数,或在任何作用域中给require重新赋值。
//错误-重命名"require"! varreq=require,mod=req("./mod"); //错误-重定义"require"! require=function(){}; //错误-重定义"require"为函数参数! functionF(require){} //错误-在内嵌作用域内重定义了"require"! functionF(){ varrequire=function(){}; }
3.使用直接量
require的参数值必须是字符串直接量。
//错误! require(myModule); //错误! require("my-"+"module"); //错误! require("MY-MODULE".toLowerCase()); //正确! require("my-module");
在书写模块代码时,必须遵循这些规则。其实只要把require看做是语法关键字就好啦。
关于动态依赖
有时会希望可以使用require来进行条件加载:
if(todayIsWeekend) require("play"); else require("work");
但请牢记,从静态分析的角度来看,这个模块同时依赖play和work两个模块,加载器会把这两个模块文件都下载下来。这种情况下,推荐使用require.async来进行条件加载。
希望本文所述对大家seajs程序设计有所帮助。