1

将 3rd 方库(JQuery/Underscore/Backbone)定义为模块并将它们用作依赖项有什么好处?

require(["jquery", "underscore"], function($, _) {
    // Use $ and _ in here
});

例如,下划线创建一个全局“_”变量,我可以在上面的函数中轻松使用它,假设下划线包含在该函数之前。

要由 Require 使用,Underscore 需要修改代码以返回值或定义的填充程序。当我可以通过脚本标签包含它时,为什么还要麻烦呢?

我知道它提供了一定程度的间接性,并允许我将其他依赖项映射到这些相同的变量,并将其范围限定为该函数。但是,我认为这对于构成应用程序核心的这些类型的 3rd 方库没有用处。

4

2 回答 2

2

在使用 Backbone/requireJs 构建了一些应用程序之后,我发现使用 requireJs 构建主干应用程序没有任何缺点,其中主要依赖项是通过旧的学校脚本标签简单加载的。

无论如何,你必须首先加载这个需求,它被你的大多数模块使用,你可能永远不会与另一个框架交换它。因此,无法负担每个模块中的样板代码。

于 2013-02-19T22:01:34.817 回答
0

您无需更改库即可在 AMD 加载程序中使用它。

require.config({paths:{underscore:'//some.cdn/path/to/underscore.js'}})

require(["jquery", "underscore"], function($ /*, note that we don't override _ here */) {
    // Use AMD $ and global _ in here
});
于 2013-02-20T06:32:24.673 回答