web-dev-qa-db-ja.com

require.jsの簡単な使用例

Require.jsの使用方法を学習しようとしています。そのため、本文に次のタグを含むHTMLページを作成しました。

<script type="text/javascript" data-main="../js/shirt" src="../js/require.js"></script>
<script type="text/javascript">
    alert("Shirt color is " + shirt.color);
</script>

../js/shirt.jsには次のコードがあります

define({
    color: "black",
    size : "large"
});

この単純な値のペアをHTMLでどのように使用できますか?

22
Ibrahim

メインファイルの内容 requireコールである必要があります 。たとえば、以下を含むvalues.jsモジュールがあります。

define({
    color: "black",
    size : "large"
});

メインファイル(shirt.js)で、values.jsを依存関係としてロードします(同じディレクトリにあると想定)。

require(['values'],function(values){
    //values.color
    //values.size
});
15
Joseph

Domenicの回答に加えて、モジュール内でrequire関数を使用せずに、define関数を使用するこの方法を好むかもしれません。

// shirt.js
define({
    color: "black",
    size : "large"
});

// logger.js
define(["shirt"], function (shirt) {
    return {
        logTheShirt: function () {
            console.log("color: " + shirt.color + ", size: " + shirt.size);
        }
    };
});

// main.js
define(["shirt", "logger"],function (shirt, logger) {    
    alert("Shirt color is: " + shirt.color);
    logger.logTheShirt();
});

私はこの方法を好みますが、それは私が推測する好みの問題だけです。 (私はすべてのスクリプトが同じフォルダーにあると想定しています。)

33

ジョセフの答えに加えて、shirtに依存する他のモジュールを作成することもできます(これがRequireJSの真の力を発揮する場所です)。

// shirt.js
define({
    color: "black",
    size : "large"
});

// logger.js
define(function (require) {
    var shirt = require("./shirt");

    return {
        logTheShirt: function () {
            console.log("color: " + shirt.color + ", size: " + shirt.size);
        }
    };
});

// main.js
define(function (require) {
    var shirt = require("./shirt");
    var logger = require("./logger");

    alert("Shirt color is: " + shirt.color);
    logger.logTheShirt();
});

次に、HTMLは

<script data-main="../js/main" src="../js/require.js"></script>
18
Domenic