ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript Advanced Modular require.jsの具体的な使用方法例を共有

JavaScript Advanced Modular require.jsの具体的な使用方法例を共有

小云云
リリース: 2018-01-02 09:08:05
オリジナル
1631 人が閲覧しました

この記事では主に JavaScript の高度なモジュール型 require.js の具体的な使用法を紹介します。必要な方はぜひ参考にしてください。

Require.js:

RequireJS は、非常に小さな JavaScript モジュール読み込みフレームワークであり、AMD (Asynchronous Module Definition、非同期モジュール読み込みメカニズム) 仕様の最良の実装の 1 つです。 requireJS の最新バージョンはわずか 14k 圧縮されており、非常に軽量です。また、requireJS を使用すると、フロントエンド コードの品質が確実に向上します。

まず、通常のページのjs読み込みを見てみましょう


<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="js/index02.js" ></script>
  </head>
  <body>
    <h1>this is a page.</h1>
  </body>
</html>
ログイン後にコピー

実行結果:

この時、ポップアップボックスを操作しないとページは継続しません。ロードするとページのコンテンツがなくなり、これは私たちが達成したい結果ではありません。

次に、require.js を使用して操作します:

index.html


<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <script src="js/require2.1.11.js"></script>
    <script type="text/javascript">
      require(["js/index","js/index01"],function(){
        console.log("当js加载成功后会执行的函数");
      },function(){
        console.log("当js加载失败后会执行的函数");
      });
    </script>
  </head>
  <body>
  </body>
</html>
ログイン後にコピー

index.js


define(function(){
  console.log("this is a test!");
  function test(){
    console.log("haha,i am a test!");
  }
  test();
});
ログイン後にコピー

まず第一に、test02.js はページにインポートされなくなり、requireJS のみがインポートされます。次に、javascript で require() メソッドを使用し、パラメータの配列を渡します。実際のパラメータは [パス + インポートする js ファイルのファイル名です。

この時の実行結果:


この時点でページの内容が表示されていることがわかります。以前のように、js が完了してからページが読み込まれるのを待つのではなく、ページが読み込まれた後にのみ js コードが実行されるため、操作効率が大幅に向上します。

上記のコードに従って、requirejs の基本 API を分析できます:

requireJS は 3 つの変数を定義します:define、require、requirejs

  1. require==requirejs。通常、require を使用する方が短いです。

  2. defineはモジュールを定義するために使用されます

  3. requireは依存モジュールをロードし(定義されたモジュールを参照します)、ロード後にコールバック関数を実行します

requireには3つのパラメータがあります:


require(["js/index","js/index01"],function(){
        console.log("当js加载成功后会执行的函数");
      },function(){
        console.log("当js加载失败后会执行的函数");
      });
//第一个参数:定义require中的依赖,参数必须是数组形式,即使只有一个依赖,也必须使用数组形式传参。
//第二个参数:是一个回调函数,用来处理加载完毕后的逻辑,当所有模块加载完成后触发
//第三个参数:也是一个回调函数,用来处理模块加载失败后的情况。如上面代码,js中没有定义index01.js这个文件,所以出调用这个回调函数。
ログイン後にコピー

ネットワークファイルのロード

前にローカルのjsファイルをロードしましたが、ネットワーク上のファイルをロードする必要がある場合、どのようにロードすればよいでしょうか?次に、インターネット上で js ファイルをロードする方法を紹介します

jquery.js ファイルをロードする例を見てみましょう: インターネット上でファイルを取得するときは、次の点に注意してください:

1.パラメータはオブジェクトです
2. パスの値もオブジェクトです

3. ネットワーク上のライブラリの名前を選択する場合、それは任意ですが、他の人がネットワークを認識できるような名前を選択することをお勧めします。リソースは名前

4 を介して指定され、ライブラリの値は配列です。これは、ネットワーク異常が利用可能になるのを防ぐために、複数のファイルを同時に書き込むことができることを意味します。 5. 特別な注意: ネットワーク リソース パスにはサフィックスを付けることができません。 6. 取得できない場合は、ローカル サービスへの負担を軽減するために、最初にネットワークにアクセスさせることもできます (これはプロジェクトの最適化に属します)。



//百度cdn公共库jQuery地址:   http://apps.bdimg.com/libs/jquery/2.1.1/jquery.js 
//jQuery官方地址:      https://code.jquery.com/jquery-3.1.1.js
//注意:网络上去取时不能加后缀,否则取不到
require.config({
  paths : {
    //为网络上的库去一个名字:jquery
    "jquery" : ["https://code.jquery.com/jquery-3.1.1"]
  }
});

//
require(["jquery","js/test01","js/test02"],function(){
  alert("页面加载成功~~");
},function(){
  alert("页面加载失败~~")
});
ログイン後にコピー

同様に、ローカル設定をパスに追加することもできます:

require.config({
  paths : {
    //这样配置,减轻本地服务器的压力
    "jquery" : ["https://code.jquery.com/jquery-3.1.1.js","js/jquery-1.8.3"]
  }
});

//
require(["jquery","js/test01","js/test02"],function(){
  alert("页面加载成功~~");
},function(){
  alert("页面加载失败~~")
});
ログイン後にコピー

require.config 設定が上記の例で繰り返されている場合、設定がすべてのページに追加されると、間違いなく非常に洗練されていないように見えます。 . requirejs は「マスターデータ」と呼ばれる機能を提供します。まず main.js:

require.config({
  paths : {
    //这样配置,减轻本地服务器的压力
    "jquery" : ["https://code.jquery.com/jquery-3.1.1","js/jquery-1.8.3"],
    //将本地的js文件同样配置,之后引用
    "test01" : ["js/test01"],
    "test02" : ["js/test02"]
  }
});

//
require(["jquery","test01","test02"],function(){
  alert("页面加载成功~~");
},function(){
  alert("页面加载失败~~")
});
ログイン後にコピー

を作成し、ページ上で次の方法で requirejs を使用します:

require.config({
  paths : {
    //这样配置,减轻本地服务器的压力
    "jquery" : ["https://code.jquery.com/jquery-3.1.1","js/jquery-1.8.3"],
    //将本地的js文件同样配置,之后引用
    "test01" : ["js/test01"],
    "test02" : ["js/test02"]
  }
});
ログイン後にコピー

をベースにしたメソッドタグ属性:

<script type="text/javascript" src="js/require2.1.11.js" ></script>
<script type="text/javascript" src="js/main.js" ></script>
<script type="text/javascript">

  require(["jquery","t1","t2"],function(){
    alert("页面加载成功~~");
  },function(){
    alert("页面加载失败~~")
  });

</script>
ログイン後にコピー

すべての設定とインポートされた js を main.js に配置し、そのようなタグのみがページで必要になるようにします。 : コードデモは以下の通りです: 演
<script data-main="js/main" src="js/require2.1.11.js" ></script>
ログイン後にコピー
E

R
//test01.js--定义一个js模块
define(function(){
  function test(){
    console.log("this is test01.js");
  }
  test();

  $("p").css("color","#DB7093");
});
ログイン後にコピー
E


R
//main.js--requirejs的全局配置
require.config({
  paths:{
    "jquery":["jquery-1.8.3"],
    "test":["test01"]
  },
  shim:{
    "test":["jquery"]
  }
});
require(["test"],function(){
  console.log("success!");
});
ログイン後にコピー
E

関連:

Require.jsの詳しい使い方


require.jsのパス設定とCSS導入方法 詳細解説


require.jsの使い方? JSの読み込みを高速化します


以上がJavaScript Advanced Modular require.jsの具体的な使用方法例を共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート