好处:
1,减少命名冲突
2,解决依赖管理
3,管理你的js文件,进一步实现页面和脚本的分离(如果页面被前端机器缓存,可以不用修改页面就能修改js引用)
参考:模块化开发的价值
基础:
1,定义一个模块
define(function(require, exports, module){ }); define("定义字符串模块"); define({arg:"定义对象模块"})
更多参阅:模块定义规范
2,模块的引用
use("./a"); use(["./a","./b"],function(a,b){ })
3,模块的配置
seajs.config({ alias:{ jq:"" }, preload:["jq"] })Tips:preload在v2.3后不支持了,具体看2.3版本移除的特性
4,define中的三个参数(require, exports, moule)
详细请看:define的三个参数详解
以上部分都掌握,基本上就可以使用sea.js进行模块化开发了。更多还需要你进一步探索(包括不仅限于阅读源码)
最后奉上seajs的下载打包文件目录
使用实例:
1,我们页面由两个部分组成:_Layout.cshtml是公用的头尾,Index.cshtm是具体的页面。
公用的部分用script引入,再引入一个sea.js(官方去掉了preload这个选项,推荐使用script直接调用)