使用requirejs扩展单个页面而不是纯JavaScript应用程序是一种好习惯吗?

时间:2013-08-26 21:04:00

标签: javascript angularjs module requirejs

所以我的问题主要是关于RequireJS的用例。

我读了很多关于纯JavaScript驱动的网页。目前,我使用AngularJS扩展单个渲染视图(例如,由PHP框架提供),这增加了很多价值。 可悲的是,依赖管理越来越难以使用其他“单页”上的每个<script>标记。当有main.js文件提供公共库(例如jQuery和AngularJS本身)时更是如此。

我认为这不符合RequireJS哲学,因为一个主文件需要所有依赖项。

一个很好的例子是一个管理面板,它使用了一些模块(由AngularJS的依赖项定义)。

示例:

scripts/
    adminpanel/
        panel.app.js
        panel.filters.js
        panel.directives.js
    antoherModule/
    andAntoherModule/
    require.js

TL;博士

当您使用AngularJS扩展单个页面时,不是构建一个完全由javascript驱动的Web应用程序,使用RequireJS for AMD加载将在单个页面上使用的模块是一种好习惯吗?最好的方法是如何做到的?

1 个答案:

答案 0 :(得分:0)

SPA通常意味着页面无法刷新,所有额外内容都会即时加载。从本质上讲,整个应用程序都是一个页面。它并不意味着所有内容都是在初始加载时加载的(尽管它足够小,可能就是这种情况)。使用RequireJS / AMD架构对于这种事情非常有用。

当用户在整个网站中导航时,会检索不同的部分/模板以及任何支持的JavaScript。

执行此操作的最佳方法是使用define。定义脚本工作所需的所有需求。所有需要的脚本都将在函数运行之前加载,确保您拥有所需的一切。此外,您定义为需求的项目可以有自己的定义来指定所需的脚本......依此类推。