Sea.js学习2——Sea.js的API 快速参考
(7 个接口是最常用的)
一、seajs.config:用来对 Sea.js 进行配置。
- seajs.config({
- // 设置路径,方便跨目录调用
- paths: {
- 'arale': 'https://a.alipayobjects.com/arale',
- 'jquery': 'https://a.alipayobjects.com/jquery'
- },
- // 设置别名,方便调用
- alias: {
- 'class': 'arale/class/1.0.0/class',
- 'jquery': 'jquery/jquery/1.10.1/jquery'
- }
- });
二、seajs.use:用来在页面中加载一个或多个模块。
- // 加载一个模块
- seajs.use('./a');
- // 加载一个模块,在加载完成时,执行回调
- seajs.use('./a', function(a) {
- a.doSomething();
- });
- // 加载多个模块,在加载完成时,执行回调
- seajs.use(['./a', './b'], function(a, b) {
- a.doSomething();
- b.doSomething();
- });
三、define:用来定义模块。Sea.js 推崇一个模块一个文件,遵循统一的写法:
- define(function(require, exports, module) {
- // 模块代码
- });
也可以手动指定模块 id 和依赖。require
, exports
和 module
三个参数可酌情省略,具体用法如下:
1)require:require
用来获取指定模块的接口。
- define(function(require) {
- // 获取模块 a 的接口
- var a = require('./a');
- // 调用模块 a 的方法
- a.doSomething();
- });
注意,require
只接受字符串直接量作为参数,
2)require.async:用来在模块内部异步加载一个或多个模块。
- define(function(require) {
- // 异步加载一个模块,在加载完成时,执行回调
- require.async('./b', function(b) {
- b.doSomething();
- });
- // 异步加载多个模块,在加载完成时,执行回调
- require.async(['./c', './d'], function(c, d) {
- c.doSomething();
- d.doSomething();
- });
- });
3)exports:用来在模块内部对外提供接口。
- define(function(require, exports) {
- // 对外提供 foo 属性
- exports.foo = 'bar';
- // 对外提供 doSomething 方法
- exports.doSomething = function() {};
- });
4)module.exports:与 exports
类似,用来在模块内部对外提供接口。
- define(function(require, exports, module) {
- // 对外提供接口
- module.exports = {
- name: 'a',
- doSomething: function() {};
- };
- });
module.exports
与 exports
的区别。
Sea.js学习2——Sea.js的API 快速参考的更多相关文章
- Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考
Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考 //System.setProperty("webdriver.firefox.bin" ...
- Sea.js学习4——Sea.js的配置
可以对 Sea.js 进行配置,让模块编写.开发调试更方便. seajs.config seajs.config(options) 用来进行配置的方法. seajs.config({ // 别名配置 ...
- Node.js学习笔记——Node.js开发Web后台服务
一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...
- Node.js学习笔记(一):快速开始
最近接了一个node项目,虽然最后顺利完成了,但是由于第一次实战,整个过程是赶出来的,许多地方一知半解.现在项目结束了,就静下心来系统地学一学,理一理,读书不忘拿笔,既然读书了,当然就要记点东西.一方 ...
- Sea.js学习3——Sea.js的CMD 模块定义规范
在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范.该规范明确了模块的基本书写格式和基本交互规则. 在 CMD 规范 ...
- Sea.js学习5——Sea.js的构建工具spm
如果项目遵循推荐的标准目录结构: foo-module/ |-- dist 存放构建好的文件 |-- src 存放 js.css 等源码 | |-- foo.js | `-- style.css `- ...
- Node.js学习(Node.js基础)
1.开发环境搭建 v8引擎是作为解析JavaScript程序来运行的 nodejs是一个高性能的,第一个体现在他的JavaScript解析速度很快,v8引擎性能很高,第二个事件驱动和非阻塞 2.全局对 ...
- [node.js学习]为node.js写的一个操作mysql的类
不支持一个对象在不同异步中使用,模仿的php框架 speedphp中的model模块 GaryMysql.js var mysql = require('mysql'); var pool = nul ...
- js学习之原生js实现懒加载
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
随机推荐
- GIT warning: LF will be replaced by CRLF.
git config --global core.autocrlf false git config --global core.autocrlf false
- java 获取项目绝对路径
String classPath = Thread.currentThread().getContextClassLoader().getResource("").getPath( ...
- 在与SQL Server建立连接时出现于网络相关的或特定于实例的错误
客户遇到一个问题,用“服务器名\实例名”远程连接另外一台命名实例的时候连接失败,报“在与SQL Server建立连接时出现于网络相关的或特定于实例的错误,未找到或无法访问服务器.请验证实例名称是否正确 ...
- 浅谈HTTP协议(上)
今天讨论一下HTTP协议.一个做前端的,如果连HTTP协议都不了解,那实在是太不合格了. 首先,什么是HTTP?Hyper Text Transfer Protocol(超文本传输协议),用在浏览器和 ...
- 利用react来制作评论框
学习地址:https://my.oschina.net/leogao0816/blog/379488
- java程序
package Dome3; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import jav ...
- zoj 2833 friendship
zoj 2833这次真的很顺利了..居然是因为数组的大小没有符合要求,瞎折腾了很久..没有注意到要求范围,真是该死! 想法很简单,就是定义一个父结点数组,下标 i 表示这个元素,初始化为 -1表示 这 ...
- input输入框输入文字出现清空文字按钮
$("#J_UserName").keyup(function(){ if($("#J_UserName").val() == "" || ...
- nginx https使用
默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这 ...
- Struts2中实现Web项目的初始化工作
Struts2中实现Web项目的初始化工作 注:通常web系统在启动时需要做一些初始化的工作,比如初始化系统全局变量,加载自定义配置文件,启动定时任务等. 一.在Struts中实现系统的初始化工作 ...