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 相关文章推荐
在textarea文本域中显示HTML代码的方法
Mar 06 Javascript
JQuery循环滚动图片代码
Dec 08 Javascript
jquery click([data],fn)使用方法实例介绍
Jul 08 Javascript
用JavaScript实现动画效果的方法
Jul 20 Javascript
jQuery Mobile 导航栏代码
Nov 01 Javascript
JS继承用法实例分析
Feb 05 Javascript
js实现ifram取父窗口URL地址的方法
Feb 09 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
Aug 28 Javascript
微信小程序之前台循环数据绑定
Aug 18 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
Sep 04 Javascript
webstorm+vue初始化项目的方法
Oct 18 Javascript
JS如何在不同平台实现多语言方式
Jul 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
通过PHP修改Linux或Unix口令的方法分享
2012/01/30 PHP
php错误级别的设置方法
2013/06/17 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
简单谈谈Python中函数的可变参数
2016/09/02 Python
Python中多个数组行合并及列合并的方法总结
2018/04/12 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
Python 下载及安装详细步骤
2019/11/04 Python
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
建议书标准格式
2014/03/12 职场文书
抽奖活动主持词
2014/03/31 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
企业文化标语大全
2014/06/10 职场文书
故宫的导游词
2015/01/31 职场文书
入党后的感想
2015/08/10 职场文书