序文: 1. コンセプト
2. モジュール化の利点
3. 複数のスクリプトタグを導入した後の問題
//インデックス.html <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>タイトル</title> <script src="jQuery.js"></script> <script src="module.js"></script> </head> <本文> <div>123</div> </本文> <スクリプト> myModule.foo(); myModule.bar(); コンソールにログ出力します。 myModule.data = 'xxxx'; myModule.foo(); </スクリプト> </html> //module.js IIFE (匿名関数の自己呼び出し) ;(関数(ウィンドウ、$){ データ = "www.baidu.com"; 関数foo(){ console.log(`foo() ${data}`); //ここではjQueryライブラリを使用する必要があります $('body').css('background', 'red') } 関数バー() { console.log(`bar() ${data}`); その他のFun(); } 関数otherFun() { コンソールにログ出力します。 } window.myModule = { foo, bar }; })(ウィンドウ、jQuery) 1. コモンJS
特徴:
文法:
アム
require.js の使用 <!-- index.html --> <script src="https://cdn.bootcdn.net/ajax/libs/require.js/2.3.6/require.js"></script> //依存関係のない module1 を定義する define('module1', () => { count = 0 とします。 const add = () => ++ count; const リセット = () => カウント = 0; const upperCase = 文字列 => string.toUpperCase() 戻る { 追加、 リセット、 大文字 } }) // module1 に依存する依存関係を持つ module2 を定義します 定義('モジュール2',['モジュール1'], (モジュール1) => { const showMsg = () => module1.upperCase('hello-amd'); 戻る { メッセージを表示 } }) <!-- HTML ファイルでモジュールを使用する --> <本文> <スクリプト> .config が必要です({ パス: { モジュール1: './modules/module1', モジュール2: './modules/module2' } }) 必要(['モジュール1', 'モジュール2'], (モジュール1, モジュール2) => { コンソール.log(モジュール1.add()) // 1 コンソール.log(モジュール1.リセット()) //0 console.log(module2.showMsg()) //HELLO-AMD }) </スクリプト> </本文> 3. CM
sea.js の使用 <script src="https://cdn.bootcdn.net/ajax/libs/seajs/3.0.3/sea.js"></script> //モジュール module1 を定義する 定義((require, exports, module) => { let string = '私は文字列です'; const readString = () => 'module1 show() ' + 文字列; // 外部に公開 exports.readString = readString; }) //モジュール module2 を定義する 定義((require, exports, module) => { exports.msg = "それは私です" }) //モジュールを定義する 定義((require, exports, module) => { //依存モジュールを導入する(同期) var module1 = require('./module1'); console.log(module1.readString()) // module1 show() 私は文字列です //依存モジュールを導入する(非同期) require.async('./module2', md2 => { console.log(`これは非同期的にインポートされます: ${md2.msg}`) //これは非同期的にインポートされます: It's me}) }) <!-- HTML ファイルはモジュールを使用します --> <本文> <スクリプト> seajs.use('./modules/module') </スクリプト> ES6 のモジュール性ES6 モジュールの設計思想は、モジュールの依存関係や入力変数、出力変数をコンパイル時に決定できるように、可能な限り静的にすることです。 CommonJS モジュールと AMD モジュールはどちらも、実行時にのみこれらのことを判断できます。
//mian.js エクスポートデフォルト{ 表示メッセージ() { console.log('ハハハハハ') } } export const msg = "満月と花が咲く美しい季節です!" //index.js import module1 from "./module1"; // export default に相当 モジュール1.showMsg() import { msg } from './module1'; //エクスポートに対応 コンソール.log(メッセージ) /*ヒント: HTML では <script type="module"> を使用しないでください import .....、クロスドメインの問題がありますが、vscode でプラグインをダウンロードするか、ローカル サービスを開始して解決できますが、詳細については説明しません。 </script>*/ JavaScript モジュール化の詳細な説明については、これで終わりです。JavaScript モジュール化に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
理由はインストール後にきちんとアンインストールされなかったためです。この問題を解決するには、次の点に...
1. 開発環境 vue+vant 2. コンピュータシステム Windows 10 Profess...
デフォルトでは、MyISAM テーブルはディスク上に .frm (テーブル構造ファイル)、.MYD ...
1. pytorch公式サイトから対応するインストールファイルをダウンロードします。 https:...
WeChatアプレットプロジェクトでは、開発モジュールに手書き署名機能が含まれ、WeChatアプレッ...
目次MySQL の基本的な共通コマンド1. SQL文2. テーブルを作成する3. フィールドのプロパ...
ダイアログをクロージャで使用し、右上隅の向こう側に閉じるボタンがあるダイアログを描画しました。ボタン...
コードと同様に、テーブルや列にコメントを追加して、他のユーザーがその機能を理解できるようにすることが...
HTML では、<img> タグはテキスト内の画像タグを定義するために使用されます。その...
私がこれまで携わってきた多くのプロジェクトでは、基本的に避けられない悪循環がありました。それは、ホー...
JavaScriptの日付エフェクトの具体的なコードは参考用です。具体的な内容は次のとおりです。コー...
序文日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行す...
Nginx (「エンジン エックス」と発音) は、インターネット上の最大規模のサイトの負荷を処理す...
ビュー:一時テーブルを繰り返し使用する場合、将来の使用を容易にするために別名を付けることができます。...
tomcat の containerID を見つけて、tomacat ディレクトリに入ります。 [r...