RequireJS - 插件
RequireJS 包含一小部分插件,允许将各种类型的资源作为依赖项加载。以下是 RequireJS 中可用的插件列表 −
- text
- domReady
- i18n
- CSS loading
text
text 插件用于异步加载基于文本的资源,主要用于在 JavaScript 文件中插入 HTML 内容。当您在任何 require 或 define 模块调用中使用 text! 前缀并将文件扩展名传递给插件时,即可加载它。与普通模块加载相比,text 插件使用 XHR 加载模块,不会将代码作为 script 标记添加到标题中。
文本文件资源可以作为依赖项包含在代码中,如 −
require(["mymodule", "text!mymodule.html", "text!mymodule.css"], function(mymodule, html, css) { //html 和 css 变量将分别是 mymodule.html 文件和 mymodule.css 文件的文本 } );
domReady
RequireJS 可用于在 DOM 准备就绪之前加载脚本,并且只有脚本完全加载后,开发人员才能与 DOM 交互。有时,脚本可以在 DOM 准备就绪之前加载。因此,为了解决这个问题,RequireJS 提供了一种称为 DOMContentLoaded 事件的现代方法,该方法在 DOM 准备就绪后调用 domReady 函数。
require(['domReady'], function(domReady) { domReady(function() { //DOM 准备就绪时调用 domReady 函数 //在此函数中操作 DOM 节点是安全的 }); });
i18n
它可以与提供 i18n 包支持的多个语言环境一起使用,当模块或依赖项指定"i18n!"前缀时,将自动加载。要使用此功能,请下载它并将其放在主 JavaScript 文件所在的同一目录中。将此插件放在名为"nls"的目录中以查找您的本地化文件。
例如,假设我们有一个名为 country.js 的 js 文件,其中包含以下内容,并将其放在目录中作为 mydirectory/nls/country.js −
define({ "root": { "india": "india", "australia": "australia", "england": "england" } });
您可以使用 fr-fr 语言环境向文件添加特定翻译,上述代码将更改为 −
define({ "root": { "title": "title", "header": "header", "description": "description" }, "es-es": true });
接下来,指定 mydirectory/nls/es-es/country.js 处的文件,内容如下 −
define({ "root": { "title": "título", "header": "cabecera", "description": "descripción" }, "es-es": true });
您可以在 main.js 文件中的模块配置的帮助下将语言环境传递给插件来设置语言环境,如下所示 −
requirejs.config({ config: { //设置 i18n 插件的配置 i18n: { locale: 'es-es' } } });
使用 RequireJS 加载 CSS
您可以使用一些插件加载 CSS 文件,只需附加到标题链接即可加载 CSS 文件。
可以使用您自己的函数加载 CSS,如下所示 −
function myCss(url) { var mylink = document.createElement("mylink"); mylink.type = "text/css"; mylink.rel = "stylesheet"; mylink.href = url; document.getElementsByTagName("head")[0].appendChild(mylink); }