(7 个接口是最常用的)

一、seajs.config:用来对 Sea.js 进行配置。

  1. seajs.config({
  2.  
  3. // 设置路径,方便跨目录调用
  4. paths: {
  5. 'arale': 'https://a.alipayobjects.com/arale',
  6. 'jquery': 'https://a.alipayobjects.com/jquery'
  7. },
  8.  
  9. // 设置别名,方便调用
  10. alias: {
  11. 'class': 'arale/class/1.0.0/class',
  12. 'jquery': 'jquery/jquery/1.10.1/jquery'
  13. }
  14.  
  15. });

二、seajs.use:用来在页面中加载一个或多个模块。

  1. // 加载一个模块
  2. seajs.use('./a');
  3.  
  4. // 加载一个模块,在加载完成时,执行回调
  5. seajs.use('./a', function(a) {
  6. a.doSomething();
  7. });
  8.  
  9. // 加载多个模块,在加载完成时,执行回调
  10. seajs.use(['./a', './b'], function(a, b) {
  11. a.doSomething();
  12. b.doSomething();
  13. });

三、define:用来定义模块。Sea.js 推崇一个模块一个文件,遵循统一的写法:

  1. define(function(require, exports, module) {
  2.  
  3. // 模块代码
  4.  
  5. });

也可以手动指定模块 id 和依赖。
requireexports 和 module 三个参数可酌情省略,具体用法如下:

1)require:require 用来获取指定模块的接口。

  1. define(function(require) {
  2.  
  3. // 获取模块 a 的接口
  4. var a = require('./a');
  5.  
  6. // 调用模块 a 的方法
  7. a.doSomething();
  8. });

注意,require 只接受字符串直接量作为参数,

2)require.async:用来在模块内部异步加载一个或多个模块。

  1. define(function(require) {
  2.  
  3. // 异步加载一个模块,在加载完成时,执行回调
  4. require.async('./b', function(b) {
  5. b.doSomething();
  6. });
  7.  
  8. // 异步加载多个模块,在加载完成时,执行回调
  9. require.async(['./c', './d'], function(c, d) {
  10. c.doSomething();
  11. d.doSomething();
  12. });
  13.  
  14. });

3)exports:用来在模块内部对外提供接口。

  1. define(function(require, exports) {
  2.  
  3. // 对外提供 foo 属性
  4. exports.foo = 'bar';
  5.  
  6. // 对外提供 doSomething 方法
  7. exports.doSomething = function() {};
  8.  
  9. });

4)module.exports:与 exports 类似,用来在模块内部对外提供接口。

  1. define(function(require, exports, module) {
  2.  
  3. // 对外提供接口
  4. module.exports = {
  5. name: 'a',
  6. doSomething: function() {};
  7. };
  8.  
  9. });

module.exports 与 exports 的区别。

Sea.js学习2——Sea.js的API 快速参考的更多相关文章

  1. Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考

    Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考 //System.setProperty("webdriver.firefox.bin" ...

  2. Sea.js学习4——Sea.js的配置

    可以对 Sea.js 进行配置,让模块编写.开发调试更方便. seajs.config seajs.config(options) 用来进行配置的方法. seajs.config({ // 别名配置 ...

  3. Node.js学习笔记——Node.js开发Web后台服务

    一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...

  4. Node.js学习笔记(一):快速开始

    最近接了一个node项目,虽然最后顺利完成了,但是由于第一次实战,整个过程是赶出来的,许多地方一知半解.现在项目结束了,就静下心来系统地学一学,理一理,读书不忘拿笔,既然读书了,当然就要记点东西.一方 ...

  5. Sea.js学习3——Sea.js的CMD 模块定义规范

    在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范.该规范明确了模块的基本书写格式和基本交互规则. 在 CMD 规范 ...

  6. Sea.js学习5——Sea.js的构建工具spm

    如果项目遵循推荐的标准目录结构: foo-module/ |-- dist 存放构建好的文件 |-- src 存放 js.css 等源码 | |-- foo.js | `-- style.css `- ...

  7. Node.js学习(Node.js基础)

    1.开发环境搭建 v8引擎是作为解析JavaScript程序来运行的 nodejs是一个高性能的,第一个体现在他的JavaScript解析速度很快,v8引擎性能很高,第二个事件驱动和非阻塞 2.全局对 ...

  8. [node.js学习]为node.js写的一个操作mysql的类

    不支持一个对象在不同异步中使用,模仿的php框架 speedphp中的model模块 GaryMysql.js var mysql = require('mysql'); var pool = nul ...

  9. js学习之原生js实现懒加载

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

随机推荐

  1. GIT warning: LF will be replaced by CRLF.

    git config --global core.autocrlf false git config --global core.autocrlf false  

  2. java 获取项目绝对路径

    String classPath = Thread.currentThread().getContextClassLoader().getResource("").getPath( ...

  3. 在与SQL Server建立连接时出现于网络相关的或特定于实例的错误

    客户遇到一个问题,用“服务器名\实例名”远程连接另外一台命名实例的时候连接失败,报“在与SQL Server建立连接时出现于网络相关的或特定于实例的错误,未找到或无法访问服务器.请验证实例名称是否正确 ...

  4. 浅谈HTTP协议(上)

    今天讨论一下HTTP协议.一个做前端的,如果连HTTP协议都不了解,那实在是太不合格了. 首先,什么是HTTP?Hyper Text Transfer Protocol(超文本传输协议),用在浏览器和 ...

  5. 利用react来制作评论框

    学习地址:https://my.oschina.net/leogao0816/blog/379488

  6. java程序

    package Dome3; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import jav ...

  7. zoj 2833 friendship

    zoj 2833这次真的很顺利了..居然是因为数组的大小没有符合要求,瞎折腾了很久..没有注意到要求范围,真是该死! 想法很简单,就是定义一个父结点数组,下标 i 表示这个元素,初始化为 -1表示 这 ...

  8. input输入框输入文字出现清空文字按钮

    $("#J_UserName").keyup(function(){ if($("#J_UserName").val() == "" || ...

  9. nginx https使用

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这 ...

  10. Struts2中实现Web项目的初始化工作

    Struts2中实现Web项目的初始化工作 注:通常web系统在启动时需要做一些初始化的工作,比如初始化系统全局变量,加载自定义配置文件,启动定时任务等.  一.在Struts中实现系统的初始化工作 ...