Sea.JS知识总结


Posted in Javascript onMay 05, 2016

SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架。是一款现代的用于Web开发的模块加载工具,提供简单、极致的模块化体验。Sea.js 由阿里、腾讯等公司共同维护。

使用 Sea.js的好处:

Sea.js 追求简单、自然的代码书写和组织方式,具有以下核心特性:

简单友好的模块定义规范:Sea.js 遵循 CMD 规范,可以像 Node.js 一般书写模块代码。
自然直观的代码组织方式:依赖的自动加载、配置的简洁清晰,可以让我们更多地享受编码的乐趣。
Sea.js 还提供常用插件,非常有助于开发调试和性能优化,并具有丰富的可扩展接口。

下面给大家介绍sea.js的三种编写模块的模式

使用exports,exports 是一个对象,用来向外提供模块接口。

define(function (require, exports, module) {
var a = require("./init");
var fun1 = function () {
return a.write("模块main调用模块init的write方法");
};
exports.fun1=fun1;
});

除了给 exports 对象增加成员,还可以使用 return 直接向外提供接口。

define(function(require,exports,module){
var a = require("./init");
var fun1 = function () {
return a.write("模块main调用模块init的write方法");
};
return{
fun1:fun1
}
})

如果模块没有任何业务逻辑只是返回一个对象还可以简化为以下

define({
fun1 : function () {
alert("模块main的fun1调用成功")
}
});

还有一种是通过module.exports对外提供一个统一的接口例如:

define(function(require,exports,module){
var a = require("./init");// ./是当前目录 ../是上级目录 /是根目录
var fun1 = function () {
return a.write("模块main调用模块init的write方法");
};
exports.b=function(){ //没有任何意义,赋值无效
alert("bb")
};
module.exports={
fun1:fun1
}
});

exports 仅仅是 module.exports 的一个引用。在 方法内部给 exports 重新赋值时,并不会改变 module.exports 的值。因此给 exports 赋值是无效的,以上的方法只暴漏给外部一个fun1,上面的b方法赋值是无效的,不能用来更改模块接口。

exports.async()
require.async(id||[], callback?)

require.async 方法用来在模块内部异步加载模块,并在加载完成后执行指定回调。callback 参数可选。

define(function(require,exports,module){
require.async('./init',function(a){
a.write("模块main调用模块init的write方法")
});
require.async(['./init',"./search"],function(a,b){
a.write("模块main调用模块init的write方法");
b.search("search模块成功引入")
});
});

module module是一个对象,上面存储了与当前模块相关联的一些属性和方法。

1 module.id String

模块的唯一标识。

2 module.uri String

根据模块系统的路径解析规则得到的模块绝对路径,一般情况下(没有在 define 中手写 id 参数时),module.id 的值就是 module.uri,两者完全相同。

3 module.dependencies Array

dependencies 是一个数组,表示当前模块的依赖。

Javascript 相关文章推荐
jQuery EasyUI API 中文文档 - Parser 解析器
Sep 29 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
Apr 17 Javascript
js处理json以及字符串的比较等常用操作
Sep 08 Javascript
JS常用字符串处理方法应用总结
May 22 Javascript
Node.js抓取中文网页乱码问题和解决方法
Feb 10 Javascript
浅谈js 闭包引起的内存泄露问题
Jun 22 Javascript
jQuery实现可展开折叠的导航效果示例
Sep 12 Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 Javascript
JS实现自定义弹窗功能
Aug 08 Javascript
Bootstrap模态对话框用法简单示例
Aug 31 Javascript
详解JS实现系统登录页的登录和验证
Apr 29 Javascript
微信小程序开发打开另一个小程序的实现方法
May 17 Javascript
在Node.js中使用Javascript Generators详解
May 05 #Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
May 05 #Javascript
JS中dom0级事件和dom2级事件的区别介绍
May 05 #Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
May 05 #Javascript
jQuery Mobile 和 Kendo UI 的比较
May 05 #Javascript
深入理解js promise chain
May 05 #Javascript
详解JavaScript中基于原型prototype的继承特性
May 05 #Javascript
You might like
php基于openssl的rsa加密解密示例
2016/07/11 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
jQuery 获取对象 定位子对象
2010/05/31 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
python 输出一个两行字符的变量
2009/02/05 Python
Python内置的字符串处理函数整理
2013/01/29 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
深入解析Python中的上下文管理器
2016/06/28 Python
python基础教程之五种数据类型详解
2017/01/12 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
python实现抖音点赞功能
2019/04/07 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
数控专业大学生的自我鉴定
2013/11/13 职场文书
幼儿老师求职信
2014/06/30 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
五好家庭事迹材料
2014/12/20 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
寻找成龙观后感
2015/06/12 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript