首页 > 代码库 > seajs 笔记

seajs 笔记

第一步:全局配置的配置对象config
seajs.config = function(configData)
如:var configData = http://www.mamicode.com/{
    base: ‘path/lib/‘,
    alias: {},
    charset: ‘utf-8‘,
    timeout: 20000,
    debug: false
}

第二步:定义模块函数define
Module.define = function (id, deps, factory)
1.id——id是一个模块的标识字符串,
2.deps——[]数组
3.factory——厂函数
如果只有一个参数,则赋值给factory。
如果有两个参数,第二个赋值给factory;第一个如果是array则赋值给deps,否则赋值给id。
如果有三个参数,则分别赋值给id,deps和factory。

factory工厂函数的三个参数分别是:
    1.require——模块加载函数,用于记载依赖模块。
    2.exports——接口点,将数据或方法定义在其上则将其暴露给外部调用。
    3.module——模块的元数据。

    module是一个对象,存储了模块的元信息
        1.module.id——模块的ID。
        2.module.dependencies——一个数组,存储了此模块依赖的所有模块的ID列表。
        3.module.exports——与exports指向同一个对象

第三步:载入和引用模块use
Module.use = function (ids, callback, uri)
1.ids——字符串(单一模式)或数组(多模块模式);
2.callback——回调函数

模块的寻址算法
1.定义标识符
2.相对路径“./”
3.绝对路径“/”

省略seajs.use
<script src="http://www.mamicode.com/sea.js" data-main="./init"></script>

第四步:模块加载方法require
传给require的路径标识必须是字符串字面量

require.async
如果想要某个js文件在用到时才下载,可以使用require.async

第五步:多库共存
define(function() {
    /*jquery code*/
    return $.noConflict();
});



seajs 笔记