sea.js总结
SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架。
参考以下网址进行详细学习:
https://segmentfault.com/a/1190000000357191?page=1
三种编写模块的模式
使用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 是一个数组,表示当前模块的依赖。
sea.js总结的更多相关文章
- sea.js模块化编程
* 为什么要模块化? 解决文件依赖 解决命名冲突 ; var var2 = 2; function fn1(){ } function fn2(){ } return { fn1: fn1, fn2: ...
- 解决sea.js引用jQuery提示$ is not a function的问题
在使用sea.js的如下写法引用jQuery文件时, //main.jsdefine(function(require,exports,module){ var $ = require('jquery ...
- 模块化开发--sea.js
当你的网站开发越来越复杂的时候,会经常遇到一下问题吗?1.冲突2.性能3.依赖如果在多人开发或者是复杂的开发过程中会经常遇到这些问 题,就可以用模块化开发来解决.以上问题是如何产生的?1.冲突:如果你 ...
- sea.js 入门
上个月学了 require.js 现在顺便来学学 sea.js. 对比下这两种的区别,看自己喜欢哪个,就在接下来的项目中去使用它吧. seajs中的所有 JavaScript 模块都遵循 CMD 模块 ...
- 第三课:sea.js模块加载原理
模块加载,其实就是把js分成很多个模块,便于开发和维护.因此加载很多js模块的时候,需要动态的加载,以便提高用户体验. 在介绍模块加载库之前,先介绍一个方法. 动态加载js方法: function l ...
- Seajs是什么及sea.js 由来,特点以及优势
Seajs是什么及sea.js 由来,特点以及优势 这篇文章主要介绍了Seajs的相关知识和和学习心得,适合刚接触SeaJS的同学,需要的朋友可以参考下,有更好的新手教程或文档,欢迎推荐.分享 1 ...
- Sea.js学习4——Sea.js的配置
可以对 Sea.js 进行配置,让模块编写.开发调试更方便. seajs.config seajs.config(options) 用来进行配置的方法. seajs.config({ // 别名配置 ...
- Sea.js学习3——Sea.js的CMD 模块定义规范
在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范.该规范明确了模块的基本书写格式和基本交互规则. 在 CMD 规范 ...
- Sea.js学习2——Sea.js的API 快速参考
(7 个接口是最常用的) 一.seajs.config:用来对 Sea.js 进行配置. seajs.config({ // 设置路径,方便跨目录调用 paths: { 'arale': 'https ...
- Sea.js学习1——初识Sea.js
Sea.js 是一个成熟的开源项目,核心目标是给前端开发提供简单.极致的模块化开发体验. 使用 Sea.js,在书写文件时,需要遵守 CMD (Common Module Definition)模块定 ...
随机推荐
- Android 图片加载[常见开源项目汇总]
该文主要是讲一下目前有哪些使用比较多的 图片加载开源项目,并简单介绍该如果使用 以及各开源项目之间有什么区别, 我们该如何去选择适合的开源项目应用到我们的项目中? 一.Android-Universa ...
- C++学习笔记(四):枚举
枚举用来代替静态常量,优点就是可以确定值的范围,而常量则无法确定范围: 常量表示法: ; ; ; ; ; bool func(int type) { //范围检查 || type > ) thr ...
- oracle下的OVER(PARTITION BY)函数介绍
转自:http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数介绍 开窗函数 ...
- 教你50招提升ASP.NET性能(八):检查你使用了什么客户端脚本
(14)Review what client scripts you are using 招数14: 检查你使用了什么客户端脚本 Out of the box, many ASP.NET projec ...
- Codeforces Round #322 (Div. 2) C. Developing Skills 优先队列
C. Developing Skills Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/581/p ...
- [001]const和指针
很经典的: const int* p: int* const p: 前者表示指针指向的值是const,指向的值不可变,但是指针本身是可变的:后者表示改指针是const,指针不可变,但是指向的值是可变的 ...
- C#_dropdownlist_3
DropDownList则与TextBox等控件不同,它使用的是select标记.它需要两个值:在下拉框中显示的列表,和默认选项.而自动绑定一次只能绑定一个属性,因此你需要根据需要选择是绑定列表,还是 ...
- 解读eXtremeComponents代码结构--转载
原文地址:http://blog.csdn.net/lark3/article/details/1937466 大致整理了去年写的东西,罗列如下: ec是一系列提供高级显示的开源JSP定制标签,当前的 ...
- Markdown基础语法
Markdown 的优点如下: 纯文本,所以兼容性极强,可以用所有文本编辑器打开. 让你专注于文字而不是排版. 格式转换方便,Markdown 的文本你可以轻松转换为 html.电子书等. Markd ...
- windows下搭建属于自己的web服务器
这次需要记录一下我搭建web服务器的过程. 第一步,确定自己要使用的平台:这次我用的是windows2008 server版本 第二步,计划是想要纯手工的安装apache.php等.但是我们可以下载一 ...