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+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
Apr 25 Javascript
IE下JS读取xml文件示例代码
Aug 05 Javascript
JavaScript生成福利彩票双色球号码
May 15 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
Jun 20 Javascript
Vue filter介绍及其使用详解
Oct 21 Javascript
vue.js前后端数据交互之提交数据操作详解
Apr 24 Javascript
JS实现简单的星期格式转换功能示例
Jul 23 Javascript
angularjs通过过滤器返回超链接的方法
Oct 26 Javascript
微信小程序开发摇一摇功能
Nov 22 Javascript
微信小程序实现二维码签到考勤系统
Jan 16 Javascript
uniapp实现可滑动选项卡
Oct 21 Javascript
SpringBoot在yml配置文件中配置druid的操作
Nov 16 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
2016/01/05 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
Python解释执行原理分析
2014/08/22 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
Python正则简单实例分析
2017/03/21 Python
python 性能优化方法小结
2017/03/31 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
2014年个人师德工作总结
2014/12/04 职场文书
自我推荐信怎么写
2015/03/24 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
古诗之感恩老师
2019/10/24 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js