转: seajs手册与文档之 -- require规则
书写规则
使用 SeaJS 书写模块代码时,需要遵循一些简单规则:
1. 正确拼写
在模块代码中,第一个参数 必须 命名为 require
.
// 错误!
define(function(req) {
// ...
}); // 正确!
define(function(require) {
// ...
});
2. 不要修改
不要重命名 require
函数,或在任何作用域中给 require
重新赋值。
// 错误 - 重命名 "require"!
var req = require, mod = req("./mod"); // 错误 - 重定义 "require"!
require = function() {}; // 错误 - 重定义 "require" 为函数参数!
function F(require) {} // 错误 - 在内嵌作用域内重定义了 "require"!
function F() {
var require = function() {};
}
3. 使用直接量
require
的参数值 必须 是字符串直接量。
// 错误!
require(myModule); // 错误!
require("my-" + "module"); // 错误!
require("MY-MODULE".toLowerCase()); // 正确!
require("my-module");
在书写模块代码时,必须遵循这些规则。其实只要把 require
看做是语法关键字就好啦。
动态依赖的小提示
偶尔会希望可以使用 require
来进行条件加载:
if (todayIsWeekend)
require("play");
else
require("work");
但请牢记,从静态分析的角度来看,这个模块同时依赖 play 和 work 两个模块,加载器会把这两个模块文件都下载下来。 这种情况下,推荐使用 require.async
来进行条件加载。
~~~seajs会用正则匹配模块定义函数体的内容( Function.prototype.toString() )中的 require(..) , 提取出依赖数组
转: seajs手册与文档之 -- require规则的更多相关文章
- 转: seajs手册与文档之 -- 快速参考 ( ~~useful )
目录 快速参考 seajs.use seajs.config define require require.async exports module.exports 快速参考 该页面列举了 SeaJS ...
- 转: seajs手册与文档之 -- 配置选项
config alias preload debug map base charset timeout noConflict config 可以使用 config 方法来配置seajs. seajs. ...
- 转: seajs手册与文档之 -- 模块标识
目录 模块标识 相对标识 顶级标识 普通路径 文件后缀的提示 模块标识 模块标识是一个字符串,用来标识模块.在 require. require.async 等加载函数中,第一个参数都是模块标识.de ...
- 转: seajs手册与文档之--模块定义
模块定义 define id dependencies factory exports require require.async require.resolve require.load requi ...
- Sea.js 手册与文档
Sea.js 手册与文档 首页 | 索引 目录 何为 CommonJS 何为 CommonJS 模块 为何封装模块 何为 CommonJS? CommonJS 是一个有志于构建 JavaScript ...
- Seajs教程 配置文档
seajs.config Obj alias Obj 别名配置,配置之后可在模块中使用require调用require('jQuery'); seajs.config({ alias:{ 'jquer ...
- 【数据库】6.0 MySQL入门学习(六)——MySQL启动与停止、官方手册、文档查询
1.0 MySQL主要有四种启动方式:直接启动.安全启动.服务启动.多实例启动. 直接启动: 服务器启动: 安全启动(最常用): 多实例启动: 2.0如何获得MySQL帮助 2.1官方手册 下面提供百 ...
- Lucene 对文档打分的规则整理记录
摘引自:http://www.cnblogs.com/forfuture1978/archive/2010/02/08/1666137.html Lucene的搜索结果默认按相关度排序,这个相关度排序 ...
- 一些在线开发手册api文档收藏
java JavaSE8 api:https://docs.oracle.com/javase/8/docs/api/ JavaSE7 api:http://docs.oracle.com/javas ...
随机推荐
- hdu2554-N对数的排列问题
http://acm.hdu.edu.cn/showproblem.php?pid=2554 假设所有的2n个数据的位置分别从1~2n标号. 现在假设其中第ai个数据(双胞胎),和bi.那么他们的位置 ...
- HTTP初步注解
搜集了一下网上的资源和自己看过的一些书,小小总结了一波HTTP,现在也只是很肤浅的了解,期望以后深入理解后能写出更有营养的笔记. HTTP协议的主要特点 + 支持客户/服务器模式.+ 简单快速:客户向 ...
- cookieless domain
概述 什么是cookieless domain?虽然名字中带有cookie,其实完全可以不使用cookie.这只是一种将网页中静态的文本,图片等的域名和主域名相区别开的方法. 主域名难免会使用到coo ...
- css3选择器的比较(二) -- 包含字符串
二. 包含“字符串” 两种用法的区别是: a. “~=”,需要用空格分割, b. "*=",不需要任何分隔符 1. 资料 a) b) 2. html代码 <div tit ...
- objective-C学习笔记(三)数据成员:属性与实例变量
类型成员 Type Member 结构体 struct 的成员很简单,只有变量. 类的成员就很多了: 数据成员 data member 描述对象(本讲重点) · 实例变量 instance vari ...
- 关于TableViewCell高度自适应问题的整理
TableViewCell高度自适应在网上有很多资料,我只想找出最最最简单的一种方法. 首先梳理一下思路.说到TableViewCell我们第一个想到的问题或许就是cell的复用问题. 1. [se ...
- Median of Sorted Arrays
(http://leetcode.com/2011/03/median-of-two-sorted-arrays.html) There are two sorted arrays A and B o ...
- MVC中关于JSON的处理
jquery中提交数据 $.getJSON("/TopicUpdate/UpdateInformation", { "bookId": bookid } ...
- mysql 锁表查询及其处理
1.show OPEN TABLES where In_use > 0; 2.show processlist; 3.kill thread_id; 其中 thread_id为processli ...
- 命令自动补全模块rlcomplete
rlcomplete定义了针对readline模块的命令自动补全函数. 当在unix平台下导入这个模块之后(前提是readline模块可用),一个Complete的实例会自动生成,并且 ...