JavaScript的模块化开发框架Sea.js上手指南

Sea.js所有源码都存放在 GitHub 上:https://github.com/seajs/examples,目录结构为:

rush:plain;"> examples/ |-- sea-modules 存放 seajs、jquery 等文件,这也是模块的部署目录 |-- static 存放各个项目的 js、css 文件 | |-- hello | |-- lucky | `-- todo `-- app 存放 html 等文件 |-- hello.html |-- lucky.html `-- todo.html

引入seajs主文件

rush:js;">

seajs主入口文件(main)

rush:js;"> define(function(require,exports,module) { // 主入口文件引入其他文件依赖 //var testReQ = require('index'); var testReQ = require.async('index',function(){ //异步加载回调 alert("我是异步加载的index的回调函数"); }); // 运行index释放的接口方法 // testReQ.testinit();

// 运行index释放的接口方法(module)
testReQ.textFun();
});

seajs依赖文件(index)

rush:js;"> define(function(require,module) { // 对外释放接口 exports.testinit = function(){ alert("我是一个接口"); }; // 如果需要释放大量接口,可以使用module var testObj = { name:"qiangck",sex:"man",textFun:function(){ alert("我是一个使用module.exports的对象方法"); } } // module.exports接收obj对象 module.exports = testObj; });

文件的加载顺序

下面我们从 hello.html 入手,来瞧瞧使用 Sea.js 如何组织代码

页面中加载模块

在 hello.html 页尾,通过 script 引入 sea.js 后,有一段配置代码

rush:js;"> // seajs 的简单配置 seajs.config({ base: "../sea-modules/",alias: { "jquery": "jquery/jquery/1.10.1/jquery.js" } })

// 加载入口模块
seajs.use("../static/hello/src/main")

sea.js 在下载完成后,会自动加载入口模块。页面中的代码就这么简单。

模块代码

这个小游戏有两个模块 spinning.js 和 main.js,遵循统一的写法:

rush:js;"> // 所有模块都通过 define 来定义 define(function(require,module) {

// 通过 require 引入依赖
var $ = require('jquery');
var Spinning = require('./spinning');

// 通过 exports 对外提供接口
exports.doSomething = ...

// 或者通过 module.exports 提供整个接口
module.exports = ...

});

上面就是 Sea.js 推荐的 CMD 模块书写格式。如果你有使用过 Node.js,一切都很自然。

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...