我们在data-main中一次指定了包含模块的文件,然后在脚本中再次要求该文件。我们以这种方式两次“导入”它。这样做有什么意义?

<script src="js/require.js" type="text/javascript" data-main="js/main"></script>
<script type="text/javascript">
   require['main'], function () {
     //load this page, once "main" has been loaded
     require['something'];
}
</script>

最佳答案

http://requirejs.org/docs/api.html#data-main


  如果要在HTML页面中执行require()调用,那么最好
  不使用数据主。 data-main仅适用于页面
  仅有一个主入口点,即数据主脚本。对于页面
  要进行内联require()调用,最好将它们嵌套在
  require()调用配置:


<script src="scripts/require.js"></script>
<script>
require(['scripts/config']), function() {
    // Configuration loaded now, safe to do other require calls
    // that depend on that config.
    require(['foo'], function(foo) {

    });
});
</script>


因此,如果您需要执行一些配置,则可以使用以下选项:


将所有逻辑设置为配置文件,然后通过data-main加载它。
制作一个内联脚本,并要求两次,如示例所示。


编码愉快,随时索取更多信息!

编辑:内联脚本内容可以与数据主引用文件的内容完全相同。

实际上,在RequireJS加载后,它会创建路径的脚本(带有async属性)。

因此,选择是您的选择,是内联的还是外部的。

另外,示例中的第一个要求仅加载配置。我认为这是一种不好的做法,但是如果必须的话,可以跳过第一个需求,而将配置复制到第二个需求的前面。

希望能帮助到你! :)

09-25 16:06