没有合适的资源?快使用搜索试试~ 我知道了~
RequireJS全面讲解
5星 · 超过95%的资源 需积分: 10 392 下载量 116 浏览量
2015-01-21
13:30:10
上传
评论 1
收藏 606KB DOCX 举报
温馨提示
试读
64页
RequireJS全面讲解:RequireJS介绍,RequireJS入门 ,RequireJS规范,RequireJS用法,RequireJS进阶应用,RequireJS加载器插件 描述RequireJS是什么,以及它的一些基础场景
资源推荐
资源详情
资源评论
RequireJS 入门指南
如今最常用的 库之一是 。最近我参与的每个项目,都用到了
,或者是我向它们推荐了增加 。在这篇文章中,我将描述
是什么,以及它的一些基础场景。
异步模块定义(AMD)
谈起 ,你无法绕过提及 模块是什么,以及 是什么。
模块只是遵循 单一职责原则的代码段,
它暴露了一个公开的 。在现今 开发中,你可以在模块中封装许多功能,而
且在大多数项目中,每个模块都有其自己的文件。这使得 开发者日子有点难过,
因为它们需要持续不断的关注模块之间的依赖性,按照一个特定的顺序加载这些模块,否
则运行时将会放生错误。
当你要加载 模块时,就会使用 标签。为了加载依赖的模块,你就要先
加载被依赖的,之后再加载依赖的。使用 标签时,你需要按照此特定顺序安排它们
的加载,而且脚本的加载是同步的。可以使用
和
关键字 使得加载异步,但可
能因此在加载过程中丢失加载的顺序。另一个选择是将所有的脚本捆绑打包在一起,但在
捆绑的时候你仍然需要把它们按照正确的顺序排序。
就是这样一种对模块的定义,使模块和它的依赖可以被异步的加载,但又按照正确的
顺序。
CommonJS是对通用的 模式的标准化尝试,它包含有 AMD 定义 ,我建
议你在继续本文之前先读一下。在 !" 这个下一版本 规范中,有
关于输出,输入以及模块的规范定义,这些将成为 语言的一部分,而且这不会
太久。这也是关于 我们想说的东西。
#
是一个 文件和模块框架,可以从 $ %&&'( &下载,如果
你使用 ) 也可以通过 * 获取。它支持浏览器和像 (' 之类的服务器
环境。使用 你可以顺序读取仅需要相关依赖模块。
所做的是,在你使用 标签加载你所定义的依赖时,将这些依赖通过
$(!$函数来加载他们。当依赖加载以后, 计算出模块定义的
顺序,并按正确的顺序进行调用。这意味着你需要做的仅仅是使用一个“根”来读取你需要
的所有功能,然后剩下的事情只需要交给 就行了。为了正确的使用这些功能,
你定义的所有模块都需要使用 的 ,否者它不会像期望的那样工作。
存在于 载入时创建的命名空间 ' 下。其主要 主要
是下面三个函数%
+,该函数用户创建模块。每个模块拥有一个唯一的模块 ,它被用于
的运行时函数,+ 函数是一个全局函数,不需要使用 ' 命名
空间(
,该函数用于读取依赖。同样它是一个全局函数,不需要使用 ' 命名
空间(
+,该函数用于配置 (
在后面,我们将教你如果使用这些函数,但首先让我们先了解下 的加载流程。
-. 属性
当你下载 之后,你要做的第一件事情就是理解 是怎么开始工作的。
当 被加载的时候,它会使用 -. 属性去搜寻一个脚本文件(它应该是
与使用 加载 是相同的脚本)。-. 需要给所有的脚本文件设置一个
根路径。根据这个根路径, 将会去加载所有相关的模块。下面的脚本是一个使
用 -. 例子:
/
0
12&('23-.12&('240&4
另外一种方式定义根路劲是使用配置函数,后面我们将会看到。 假设所有的依
赖都是脚本,那么当你声明一个脚本依赖的时候你不需要使用(' 后缀。
配置函数
如果你想改变 的默认配置来使用自己的配置,你可以使用 (+$ 函
数。+ 函数需要传入一个可选参数对象,这个可选参数对象包括了许多的配置参数选
项。下面是一些你可以使用的配置:
566用于加载模块的根路径。
$66用于映射不存在根路径下面的模块路径。
$.66配置在脚本&模块外面并没有使用 的函数依赖并且初始化函数。
假设 并没有使用 定义,但是你还是想通过 来使
用它,那么你就需要在配置中把它定义为一个 $.。
66加载依赖关系数组
下面是使用配置的一个例子:
7
/
(+8
7
9
3333&&:..&
7
;
33335%3<&<
7
=
3333&&>$.?$22
7
@
33333$%8
7
"
33333333%3<((&<
7
A
3333B
7
C
3333&&D$.
7
E
3333$.%8
/
7
33333333<D<%8
/
/
333333333333&&F$$
D('
/
9
333333333333%G<<H
/
;
333333333333&&$<:D<$..(
/
=
333333333333>%3<:D<
/
@
33333333B
/
"
3333B
/
A
BI
在这个例子中把根路径设置为了 scripts/app
,由
lib
开始的每个模块都被配置在
scripts/
lib
文件夹下面,
backbone
加载的是一个
shim
依赖。
用 RequireJS 定义模块
模块是进行了内部实现封装、暴露接口和合理限制范围的对象。 提供了 +
函数用于定义模块。按章惯例每个 文件只应该定义一个模块。+ 函数接
受一个依赖数组和一个包含模块定义的函数。通常模块定义函数会把前面的数组中的依赖
模块按顺序做为参数接收。例如,下面是一个简单的模块定义%
7
/
+G22H83333333
7
9
333333338
7
;
3333333333333+*.%J$2
7
=
3333333333333*.%J:DJ
7
@
3333333333333K%8
7
"
3333333333333333(L$MI
7
A
3333333333333B
7
C
33333333B
7
E
3333B
/
7
I
我们看,一个包含了 的模块依赖数组被传给了 + 函数该模块后面会被调用。
同样我们看所定义的模块中有一个名为 的参数,它会被设置为 模块。每一
个模块都应该返回它的 (这个示例中我们有两个属性+*. 和 *.和一个
函数K。然后,只要你后面定义的模块通过 来引用这个模块,你就可以使用其
暴露的 。
使用 require 函数
在 中另外一个非常有用的函数是 函数。 函数用于加载模块依
赖但并不会创建一个模块。例如:下面就是使用 定义了能够使用 'N 的一个
函数。
?
#
/ G<'<H33O8
9
3333&&'N?
?
; BI
小结
在这篇文章中我介绍了 库它是我创建每个 项目都会用到的库函数
之一。它不仅仅用于加载模块依赖和相关的命令, 帮助我们写出模块化的
代码,这非常有利于代码的可扩展性和重用性。
RequireJS
入门(一)
由 .:D
创建,他也是
规范的创始人。
3
会让你以不同于往常的方式去写 。你将不再使用 标签在 KFP
中引入 文件,以及不用通过 标签顺序去管理依赖关系。
3
当然也不会有阻塞(D)的情况发生。好,以一个简单示例开始。
3
新建一个目录,结构如下
3
目录 / 下有 >($.、'-/(A(9('、.('、('。(' 和 '-
/(A(9(' 去各自官网下载即可。
剩余63页未读,继续阅读
资源评论
- zl20062015-11-01很好,帮助很大
- text1112222017-02-26很好,帮助很大
- sinat_291394512015-10-15真心不错值得推荐
- mbcqss2016-05-10很好,帮助很大
兔兔妞
- 粉丝: 2
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功