日期:2014-05-16  浏览次数:20566 次

RequireJS管理js文件依赖示例

在使用RequireJS管理依赖之前,需要在html页面上手动引入一堆js文件,要注意依赖顺序。这倒没什么,最关键的是我认为html文件中搞这么多东西显得凌乱不堪,而且会影响web美工的工作。

现在看看RequireJS带来的整洁的特点:

下面有个html页面:

<html>
  <head>
    <title>configuration</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link type="text/css" href="../master/plugin/artDialog4.1.6/skins/blue.css" rel="stylesheet"/>
    <script data-main="../master/script/app/config" src="../master/script/third_party/require.js"></script>
  </head>

最有一个script语句引入了require.js文件,并且在data-main中指定了另一个js文件:config.js,我定义如下:

require.config({
    paths: {
        "jquery": "../third_party/jquery-1.8.0.min",
        "jquery.validate": "../../plugin/jquery-validation-1.9.0/jquery.validate",
        "jquery.artDialog": "../../plugin/artDialog4.1.6/jquery.artDialog"
    }
});

require(["jquery"], function(util) {

    require(["jquery.validate", "jquery.artDialog"], function(util) {

        require(["masterUI", "masterSite", "configuration"], function(util) {                                                                                                                              
            $(document).ready(function() {
		window.configuration.init();
            })
        });
    });
});
require.config中配置了引入的第三方的js库的js文件所在位置,包括jquery, jquery.validate和jquery.artDialog

之后三个require调用,一层套一层,注意依赖顺序就是内层依赖外层。最先要被加载的就写到最外层。

最里面写了一个调用,$(document).ready(...) 本来一般写在html页面里面来的,这样好了。又和html解耦了。


想想自己那堆凌乱不堪的html文件,赶紧去改啊。