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);
}