SEA.JS
2015-11-02 15:42:51 1 举报
AI智能生成
Sea.js 是一个遵循 CommonJS 规范的 JavaScript 模块加载器,它可以帮助开发者实现模块化开发,提高代码的可维护性和可复用性。Sea.js 的主要特点包括:支持异步加载模块,具有高性能和灵活性;可以与浏览器环境无缝集成,支持多种模块标准(如 CMD、AMD、ES6);提供了丰富的插件和工具,方便开发者进行模块化开发。通过使用 Sea.js,开发者可以更好地组织和管理项目中的 JavaScript 代码,提高开发效率。
作者其他创作
大纲/内容
JS开发框架
模块化开发框架
解决依赖问题
遵循CMD模块定义规范
Common Module Definition
define
构建器
define(function(require, exports){
var util = require("****.js");
exports.function = function() {
//实现代码
}
});
require
与define配合使用,达到引用的目的
获取其他模块提供的接口
类似于CSS的@import
@import url("base.css");
优点
1,通过exports暴露接口
2,通过require引入依赖
优点
1,模块的版本管理
2,提高可维护性
3,前端性能优化
4,跨环境共享模块
API
seajs.config
配置
seajs.config({
// 设置路径,方便跨目录调用
paths: {
'arale': 'https://a.alipayobjects.com/arale',
'jquery': 'https://a.alipayobjects.com/jquery'
},
// 设置别名,方便调用
alias: {
'class': 'arale/class/1.0.0/class',
'jquery': 'jquery/jquery/1.10.1/jquery'
}
});
seajs.use
用来在页面中加载一个或多个模块
// 加载一个模块
seajs.use('./a');
// 加载一个模块,在加载完成时,执行回调
seajs.use('./a', function(a) {
a.doSomething();
});
// 加载多个模块,在加载完成时,执行回调
seajs.use(['./a', './b'], function(a, b) {
a.doSomething();
b.doSomething();
});
define
用来定义模块
require
用来获取指定模块的接口
require.async
用来在模块内部异步加载一个或多个模块
define(function(require) {
// 异步加载一个模块,在加载完成时,执行回调
require.async('./b', function(b) {
b.doSomething();
});
// 异步加载多个模块,在加载完成时,执行回调
require.async(['./c', './d'], function(c, d) {
c.doSomething();
d.doSomething();
});
});
exports
用来在模块内部对外提供接口
module.exports
与exports类似,用来在模块内部对外提供接口
define(function(require, exports, module) {
// 对外提供接口
module.exports = {
name: 'a',
doSomething: function() {};
};
});
CMD模块定义规范
define
define(factory)
factory
对象
字符串
可以做模板
函数
require
exports
module
define(id?,deps?,factory)
id
模块标识
deps
模块依赖
['jquery']
define.cmd
一个空对象,用来判断当前页面是否有CMD模块加载器
if (typeof define === "function" && define.cmd)
require
require.async
require.resolve
exports
module
module.id
module.uri
module.dependencies
module.exports
知识补充
系统定义(两部分)
1,定义系统成员
2,约定系统通讯
0 条评论
下一页