この記事では主に JS のモジュール化の分析を紹介します。これを必要な友人に共有します。
2. なぜモジュール化するのでしょうか?
複雑さを軽減し、デカップリングを改善し、展開を容易にする3. モジュール化の利点
4. モジュール仕様
ブラウザ側: モジュールは事前にコンパイルおよびパッケージ化する必要があります
基本構文:
モジュールの紹介: require(xxx)
サードパーティモジュール: xxx はモジュール名ですカスタムモジュール: xxx はモジュールファイルのパスです
公開されたモジュール: exports.xxx = 値module.exports = value
公開されたモジュールの本質は、exports オブジェクトです
Exports 自体は空のオブジェクトです exports.xxx = value は、属性またはメソッドをエクスポート オブジェクトに追加することです
Module .exports = value は、元の空のオブジェクトを新しい value オブジェクトで直接上書きします
実装:
サーバー側の実装: Node.js
ブラウザ側の実装: Browserify (CommonJS ブラウザ側のパッケージ化ツール)browserify をダウンロードしてインストールします
グローバル: npm install browserify -g
ローカル: npm install browserify --save-dev
モジュール コードを定義します (js ファイル コードと対応するコンテンツを公開します)
導入モジュール app.jsでrequireを使用してモジュールを導入しますが、ブラウザがrequireメソッドを認識しないのでjsをパッケージ化して処理する必要があります
browserify js/src/app.js -o js/distと入力します。ターミナルのルート ディレクトリの /bundle.js (js/src/app.js ソース ファイル js/dist/bundle.js はパッケージ化された出力ファイルです)
ページを使用して紹介:
(ブラウザが実際に実行するのは、パッケージ化され生成されたファイルです)
2. AMD
2. ブラウザ側のモジュール化仕様とモジュールロードに特別に使用されます 非同期です
基本構文:公開モジュールを定義します:
//定义没有依赖的模块: define(function(){ return 模块 }) //定义有依赖的模块: define(['module1','module2'],function(m1,m2){ return 模块 })
require(['module1','module2'],function(m1,m2){ 使用m1/m2 })
実装 (browユーザー側):
Require.js
基本構文:
//定义没有依赖的模块: define(function(require,exports,module){ exports.xxx = value module.exports = value }) //定义有依赖的模块: define(function(require,exports,module){ //引入依赖模块(同步) var module2 = require("./module2") //引入依赖模块(异步) require.async("./module3",function(m3){ }) //暴露模块 exports.xxx = value })
require(function(require){ var m1 = require('./module1') var m4 = require('./module4') m1.show() m4.show() })
実装(ブラウザ側): Sea.js
4、ES6
注: 依存モジュールコンパイルしてパッケージ化する必要がありますページはじめに
インペンテーション(ブラウザー側):
Babel を使用して ES6 から ES5 コードをコンパイルする
以上がこの記事の全内容であり、その他の関連コンテンツについても役立つことを願っています。 、PHP 中国語 Web サイトに注意してください。 関連するおすすめ:
以上がJSのモジュール性の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。