Sea.js
模块化开发
Sea.js遵循CMD规范
使用sea.js进行开发
第一步:引入sea.js的包
第二步:启动并指定入口模块seajs.use('../static/src/main')
注意:main.js可以省略后缀不写
第三步:定义模块 define(函数或者数组)
, define([])
define({})
define("abc")
这几种形式不需要导出,数组内的值会被自动导出
常用写法:define(function(require,exports,module){})
第四步:如果本身是一个模块,可以通过require()
来引入其他的模块 require()的参数只能是字符串,重复的require()请求只会执行一次
第五步:通过module.exports = {}
来输出模块对象
小坑
当module.exports和exports都没有被赋值时,均指向同一个内存空间地址console.log(module.exports === exports) //true
可以使用module.exports来挂载属性,也可以使用exports来挂在属性,但不能使用exports来输出对象
seajs.use()
seajs.use()是异步加载
seajs.use([]) -回调函数的参数就是数组每个模块的返回值
-模块的加载顺序,和回调参数的顺序一定要保持一致
推荐使用数组的形式,尽量省略”.js”的文件名
让第三方包支持cmd规范
|
|
seajs的config配置
|
|
requirejs简单了解
requirejs中的配置
比较seajs和requirejs
requirejs会提前加载好所有需要的模块
seajs会按需求加载模块