seajs教程,seajs还有人用吗,Sea.JS知识总结

seajs教程,seajs还有人用吗,Sea.JS知识总结

SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架。本文分享了sea.js知识的总结,有兴趣的朋友可以一起学习。

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

使用 Sea.js的好处:

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

简单的模块定义规范:Sea.js遵循CMD规范,可以像Node.js一样编写模块代码

直观的代码组织:依赖的自动加载,简洁明了的配置,可以让我们更享受编码。

Sea.js还提供了常用的插件,对开发、调试、性能优化都有很大的帮助,有丰富的可扩展接口。

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

对于导出,导出是一个向外界提供模块接口的对象。

定义(功能(要求、导出、模块){

var a=require(。/init’);

var fun1=function () {

A.write(模块main调用模块init的write方法);

};

exports . fun 1=fun 1;

});

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

定义(功能(要求、导出、模块){

var a=require(。/init’);

var fun1=function () {

A.write(模块main调用模块init的write方法);

};

返回{

有趣1:有趣1

}

})

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

定义({

fun1:函数(){

预警(“模块main的fun1调用成功”)

}

});

另一种是通过module.exports向外界提供统一的接口,例如:

定义(功能(要求、导出、模块){

var a=require(。/init’);//./是当前目录./是父目录/是根目录。

var fun1=function () {

A.write(模块main调用模块init的write方法);

};

Exports.b=function(){ //没有任何意义,赋值无效

警报( bb )

};

模块.导出={

有趣1:有趣1

}

});

Exports只是对module.exports的引用。当您在一个方法中为exports重新赋值时,module.exports的值不会改变。因此,为导出赋值是无效的。上面的方法只暴露了一个外部fun1。上述方法B的赋值无效,不能用于更改模块接口。

exports.async()

require.async(id||[],回调?)

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

定义(功能(要求、导出、模块){

require.async(。/init ,函数(a){

A.write(模块main调用模块init的write方法)

});

require.async([。/init“,”。/search],函数(a,b){

A.write(模块main调用模块init的write方法);

B.search(“成功引入搜索模块”)

});

});

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

1个module.id字符串

模块的唯一标识。

2 module.uri String

根据模块系统的路径分析规则,模块的绝对路径一般为(define中没有写id参数时),module.id的值为module.uri,完全相同。

3模块依赖数组

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

seajs教程,seajs还有人用吗,Sea.JS知识总结