RequireJS 如何处理多个页面和部分视图?

2023-12-07

我正在调查要求JS但我对有些事情不确定。

我了解如何加载所有依赖项main.js。 但是我是否需要添加任何逻辑来处理这些依赖项main.js?

To me, main.js看起来像一个 document.ready 状态,当文档加载时你就在那里输入逻辑,对吧?

对于其他页面和部分视图,我是否需要创建多个main.js或者我可以只从视图中的视图中引用依赖项中加载的函数吗?<script>例如?


Update- 我添加了一个使用 RequireJS 和模块化 HTML 组件的示例。包含构建工具示例 -https://github.com/simonsmith/modular-html-requirejs

我还写了一篇关于此的博客文章 -http://simonsmith.io/modular-html-components-with-requirejs/


只使用的方法main.js因为一切都是可能更适合单页应用程序.

我处理这种情况的方法是只在main.js file:

在每个页面上:

<script src="require.js" data-main="main"></script>

main.js

require.config({
// config options
});

require(['jquery', 'common/ajaxLoader', 'common/someOtherModule'], function($, ajax, otherModule) {
    // Modules that do stuff on every page are instantiated here 
});

第1页.html

<script>
    require(['scripts/page1']);
</script>

page1.js

require(['jquery', 'page1Module'], function($, module){
    // page1 specific stuff here
});

上面的例子只是处理它的几种方法之一。笔记加载纯 JavaScript 文件和模块之间的区别.

我遵循的经验法则是将所有可重用模块(或类,如果它更容易概念化)保留在一个define具有自己的依赖项等,然后使用require获取这些模块,使用它们的方法或以某种方式与它们交互。

使用此模式几乎肯定需要使用 domReady 模块这是 RequireJS 的一个单独的插件。用这个而不是 jQuery 中的现成函数例如,它允许模块在 DOM 准备好之前开始下载,从而减少代码执行的等待时间。

Edit您可能希望请参阅多页面应用程序的另一个示例在 RequireJS 存储库中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RequireJS 如何处理多个页面和部分视图? 的相关文章

随机推荐

  • 如何在C#中从x509证书获取数字签名值

    有谁知道如何使用 C 从 x509 证书获取数字签名值 实际上位于 x509Store 中 而不是从文件中验证 并在文本框中显示它 我知道 GetRawCertDataString 返回整个 x509 证书的原始数据 其中包括最后一行的数字
  • 使用 UIWebView 上传照片

    我想直接从 UIWebView 上传照片 该视图具有用于文件上传的 HTML 表单 当我单击按钮时 我会看到拍照或选择现有照片的选项 但是当我单击这两个选项中的任何一个时 我得到 警告 尝试呈现
  • 在Python中定义名称

    我很困惑为什么我的程序不起作用 我应该使用嵌套的 if 来询问人们的姓名和头衔 医生 女性 男性 然后打印出女士姓名 先生姓名或医生姓名 如果有人知道我遇到的问题 请回复 name input Enter your name title i
  • 从不寻常的 svn 目录结构迁移到 maven?

    与 正常 svn 目录结构相反 我使用以下结构 trunk project1 project2 project3 branches project1 branch project1 project2 project2 branch proj
  • DatePicker 无法在 ajax 加载的页面中工作

    我将日期选择器附加到全局脚本文件中的输入 如下所示 document on focusin datePick function this datepicker dateFormat dd mm yy changeMonth true cha
  • 查询网格内的点 Maya python api

    我试图找出一种计算世界空间点是否位于任意网格内部的方法 如果它不是立方体或球体 我不太确定如何计算它的数学 任何帮助都会很棒 人们可以使用一种简单的光线追踪技巧来测试您是在形状的内部还是外部 事实证明 2D 3D 对象甚至可能更高维度的对象
  • 表 [表名] 未锁定

    我正在编写一个锁定表的 MySQL 查询 LOCK TABLE table 1 WRITE 之后 我正在执行一些函数 并且在其中一个函数中 我正在另一个未锁定的表上执行另一个查询 SELECT FROM completely differe
  • 可以将其作为 SQL Server 作业吗?

    我有一个文件夹 其中包含用于使用徽章的图像 我有另一个文件夹 其中包含图像的重命名版本 该文件夹位于另一台计算机上 我需要创建一个过程来复制和重命名找到的任何新图像 名称之间的映射位于 SQL Server DB 中 将其创建为 SQL S
  • 使用 CMake 检测 Qt5

    我正在尝试在 Ubuntu 上安装和使用 Qt 5 为我的需要 Qt 5 的项目运行 CMake 会导致 The C compiler identification is GNU 4 8 4 The CXX compiler identif
  • 确保 epmd 已启动

    我有一个 eunit 测试 它生成唯一的节点名称并开始分发 A B C now Nodename list to atom lists flatten io lib format test b b b localhost A B C ok
  • 在 Macos 上安装 xampp 的 mongodb 扩展

    我找了一晚上 也没找到解决办法 我尝试通过运行来安装 mongodb 扩展sudo Applications XAMPP xamppfiles bin pecl install mongodb但最后我得到这个错误 fatal error u
  • 选择表数据到数组 - 仅获取一行

    我正在尝试从表中获取数据EmailList并将其放入一个数组中 该数组将被传递到 Outlook 电子邮件的 收件人 字段 电子邮件的脚本已创建 我计划使用Join 函数将数组组合成字符串 如下所示 Join varEmailList My
  • 如何修复 Python 中的 unicode/cPickle 错误?

    ids cPickle loads gem value loads argument 1 must be string not unicode cPickle loads想要一个字节字符串 这正是cPickle dumps输出 然后你给它提
  • MongoDB:如何查询 json 字符串?

    有一个 MongoDB 集合 其中填充了如下文档 id ObjectId 5b7f83b591fae49715443590 content n t email email protected n t country code US n 如你
  • SOLR 在第一个方面查询时很慢,但在以后的查询中相当快

    我试图找出为什么我的 SOLR 4 1 实例对于方面查询非常慢 索引大约有200M文档 服务器有64GB RAM 我的查询如下所示 q CampaignId 1462 0ASourceDateUtc 2014 01 01T00 00 00
  • Backbone collection.create() 不返回更新后的模型

    为了学习骨干 我创建了一个类似 Twitter 的应用程序 所以你知道 Twitter 每隔 N 秒向服务器发送一个 GET 请求来检查新推文 如果有新的推文 它会创建隐藏的推文li元素并显示带有 N 个新推文 的按钮 如果你点击它 它会显
  • AngularJS:使用具有多个模型的设备

    我有一个 Rails 应用程序 使用具有 2 个不同模型的设计 对应于截然不同的角色 没有 STI 完全不同的模型 我计划转向 AngularJS 前端 想知道构建应用程序的最佳方式是什么 以下是我的初步想法 每个用户模型都有不同的基本登录
  • 在c#中将两个具有不同元素的列表合并为一个具有所有元素和相同索引的列表

    我有两个不同的列表geocode1 and geocode2均为 5 行记录 geocode1有 4 列 即地址 城市 邮政编码和街道 geocode2有 4 列 即纬度 经度 状态和县 使用 addrange 合并它们 如下所示 geoc
  • 在 tcsh 中生成序列号列表

    我一直在尝试找到一种解决方法来在 tcsh 中广泛定义序列号列表 即 而不是做 i 1 2 3 4 5 6 8 9 10 我想做这样的事情 知道它不起作用 i 1 10 这在 foreach 循环中特别有用 我知道我可以使用 while 只
  • RequireJS 如何处理多个页面和部分视图?

    我正在调查要求JS但我对有些事情不确定 我了解如何加载所有依赖项main js 但是我是否需要添加任何逻辑来处理这些依赖项main js To me main js看起来像一个 document ready 状态 当文档加载时你就在那里输入