序文: 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. 問題の説明: 2. Jenkins設定のトラブルシューティング3. コードログのエンコード...
コンテナの自動起動Docker は、コンテナが終了したとき、または Docker が再起動されたとき...
多くのプログラマーは MySQL に精通していると思います。多くの人が count の使い方と、最適...
1. Dockerの起動の問題:問題は解決しました: Hyper-V をオンにする必要があります (...
目次ビジネス要件:解決策 1: vuex-persistedstate解決策2: vuex-pers...
インストール環境: CentOS7 64ビットMINI版公式ソースコードのコンパイルおよびインストー...
この記事では、centos6.6 で php7 + nginx 環境をインストールする方法について説...
今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。関連記事: HTML タ...
目次1. ルーティング構成2. Vueページのネスト3. ネストされた関係1. ルーティング構成 定...
序文: Vue プロジェクトで現在のマウスの座標を取得するにはどうすればよいでしょうか。ここで共有す...
目次DMLステートメント1. レコードを挿入する2. 記録を更新する3. シンプルなクエリレコード4...
Web プロジェクトがどんどん大きくなると、CSS は天文学的な大きさと複雑さを増します。この問題を...
目次1. DHCP サービス (動的ホスト構成プロトコル) 1. 背景2. 概要3. 利点4.DHC...
外部キーテーブルの主キーがどのテーブルの外部キーであるかを照会する 選択 テーブル名、 列名、 制約...