如何使用 RequireJS 构建多个页面

2024-04-07

如何使用RequireJS构建多个页面?就像下面的示例一样,在 app.js 中声明每个类是正确的做法吗?有每个 html 文件来声明<script data-main="src/main" src="src/require.js"></script>?

我想避免的是当用户到达网站的第一页时加载所有脚本。

main.js 定义所有外部依赖项:

require(
    {
        baseUrl:'/src'
    },
    [
        "require",
        "order!http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js",
        "order!http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js",
        "order!http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js",
        "order!http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"
    ], 
    function (require) {
        require(["app"], function (app) {
            app.start();
        });
    }
);

app.js 文件定义每个组件:

define([ "product/ProductSearchView",
         "product/ProductCollection"
         ], function (ProductSearchView,
                      ProductCollection) {
         return {
             start: function() {
                  var products = new ProductCollection();
                  var searchView = new ProductSearchView({ collection: products });
                  products.fetch();
                  return {};
             }
        }
});

您可以在现有模块中请求文件。因此,假设当有人单击链接时,您可以触发执行以下操作的函数:

// If you have a require in your other module
// The other module will execute its own logic
require(["module/one"], function(One) {
    $("a").click(function() {
        require(["new/module"]);
    });
});

// If you have a define in your other module
// You will need to add the variable to the require
// so you can access its methods and properties
require(["module/one"], function(One) {
    $("a").click(function() {
        require(["new/module"], function(NewModule) {
            NewModule.doSomething();
        });
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 RequireJS 构建多个页面 的相关文章

随机推荐

  • docker python 自定义模块未找到

    我是 docker 新手 正在尝试将一个简单的应用程序移至 docker 我可以使用 pip install 导入Python标准模块 但是 我有一些想要使用的自定义 python 实用程序文件 这些文件位于单独的包 utils 中 在我的
  • 无限循环使 TimeManager 失效

    我在 WPF 应用程序中遇到了一个非常棘手的缺陷 需要追踪 错误信息是 无限循环似乎是由重复导致的 在布局 渲染过程中使 TimeManager 无效 堆栈跟踪 就其价值而言 是 在 System Windows Media MediaCo
  • TortoiseSVN无法验证

    在我之前的问题之后 TortoiseSVN无法连接 https stackoverflow com questions 11820835 tortoisesvn cant connect解决了 我又遇到了新的问题 在托管我的 svn 存储库
  • 当我尝试在 Windows PC 上安装 PySide2 时,为什么总是出现错误?

    我一直在尝试安装PySide2在我的电脑上 Windows 10 64bits with Python 3 8已安装 但每次都出现错误 我使用了命令pip install PySide2 它对我不起作用 任何帮助将不胜感激 Error ER
  • Linux 如何知道何时为调用堆栈分配更多页面?

    鉴于以下程序 segfault 顾名思义 将通过访问堆栈下方的 256k 来使程序出现段错误 nofault 然而 逐渐将堆栈推到下方 1m 但永远不会出现段错误 此外 运行segfault after nofault 也不会导致错误 如果
  • Sphinx 文档中使用全局变量标准化链接

    我正在使用 Sphinx 来记录工作项目 我想在整个文档的多个页面上使用指向下载的相同链接 例如 home rst Hi I want you to download my project download blah com downloa
  • Dagster 循环实体的输出和并发处理

    我有一个由两个固体组成的 Dagster 管道 下面是可重现的示例 首先 return some list 输出一些对象的列表 第二个固体 print num 接受第一个列表 不是完整列表 中的元素 并对该元素进行一些处理 我该如何为第一个
  • Rails 视图显示双花括号中的格式输入,例如 {{parameter}} 而不是实际值

    我在使用 Rails 2 3 8 执行以下功能时收到此错误 单词时间距离 shows 还剩 count 天 以及表格错误 Restful 身份验证登录显示无效表单的错误 如下所示 count 个错误禁止保存此 model 以下字段存在问题
  • 更快地循环图像的方法

    有谁知道如何更快地完成这项工作 我可以使用 Lockbits 做同样的事情吗 for int y 0 y lt picture Height y for int x 0 x lt picture Width x Color colorPix
  • 散点图中点的垂直线

    假设我有一组点x以及一组对应的数据y 我现在将这些绘制成散点图 plt scatter x y 我得到的图包含一些由 matplotlib 生成的 x 轴刻度 有没有一种方法可以实现自动勾选 但要添加从 x 轴到散点中的点的垂直线并标记它们
  • 在 Nuget 的构建后获取版本

    Code if ConfigurationName Release cd ProjectDir nuget spec Entities f nuget pack DeusPak Entities csproj Prop Configurat
  • Eclipse 图形布局不显示任何内容

    I am doing a mobile application on Eclipse and once I re installed my Android SDK after installation something odd happe
  • Twitter Bootstrap:使表单输入和按钮与 Chrome 和 Firefox 中的高度相同

    Using Twitter 引导程序 2 3 2 http twitter github io bootstrap base css html forms我有一个input append form
  • 操作栏溢出不显示

    我正在为 Sherlock 设置一个带有 3 个项目 图标的操作栏 在 ICS 模拟器上运行时 我只能看到 2 个图标 而且 没有溢出菜单 那三个点图标 如果我按手机的菜单按钮 我只会看到第三个图标 我是否必须强制使用溢出图标 如果是的话我
  • 如何在 Objective-C 中包装 C++ 库?

    我有一个 C 库 仅限 h 其中包含数据结构的实现 我想在我的 iPhone 应用程序中使用它 首先 我用 Objective C 编写了一个包装器作为一个类 通过组合 它具有 C 类的 ivar 然后我 有义务 将包装类扩展更改为 mm
  • Angular 的过滤器问题

    明确地说 我对 Angular 上的过滤器有一个大的小问题 附加过滤器的输入搜索 如果你看到这个例子 这正是我想要的 http plnkr co edit FJ45nV6gdwp3SkRglPeW p preview 实际上 我用我的应用程
  • 使用自然键的 Django loaddata 未查询正确的外键

    这是我的问题 我正在尝试加载一些与另一个模型具有自然键关系的数据 我修改了父模型以生成自然键 我使用以下命令从旧数据库导出数据 manage py dumpdata resources image n indent 4 gt images
  • 如何使用 Python 与 ChatGPT 聊天?

    我要求 ChatGPT 向我展示如何使用 OpenAi 的 API 在终端窗口中与其进行交互 它生成了代码 我对其进行了一些修改 以便完成我想要的操作 这是Python代码 import requests with open api key
  • 将 cellpadding 添加到 Java JTable

    我正在尝试实现 Swing JTable 我按照教程进行操作http docs oracle com javase tutorial uiswing components table html simple http docs oracle
  • 如何使用 RequireJS 构建多个页面

    如何使用RequireJS构建多个页面 就像下面的示例一样 在 app js 中声明每个类是正确的做法吗 有每个 html 文件来声明 我想避免的是当用户到达网站的第一页时加载所有脚本 main js 定义所有外部依赖项 require b