ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript モジュールがどのようにロードされるかを解析する
この記事では、主に js モジュールの読み込み方法の主要な学習教材を詳細に紹介します。興味のある方は参考にしてください。
はじめに: フロントエンドのモジュール開発がますます盛んになり、どのように組み合わせるか。断片化されたプラグインまたは通常の JS スクリプト ファイルの統合管理と参照は、多くの開発者の共通の目標です。最近、特にフロントエンドのことに興味があり、自分のアイデアも交えて、ちょっとしたことを書いてみます。物は素晴らしいというわけではありませんが、それでも少し使いやすいと感じます。
以下はショートコードです。
中心的なアイデア: プログラムの実行中に、事前にパッケージ化されたモジュールのロードメソッドを外部から呼び出し、パラメータ(メインディレクトリとモジュールjsまたはcssのディレクトリを含む)を渡すことにより、対応するcssまたはjsが動的にロードされる コードは、参照ファイルのスタイルまたはメソッドを使用できるように、head タグに参照を追加します。
ソースファイル:
(function(req) { window._Req= req; })((function($) { var _factory = function() {}; //模块工厂 //docker _factory.prototype = { _origin: location.origin || location.protocol + "//" + location.host,//域名地址 _aim: null, _config: function(param) { var _default = { //默认参数 _coreDir: "", _moduleArr: [ ['', ''] ], //模块数组 }, _opt = {}; $.extend(_opt, _default); if (typeof param === 'object') $.extend(_opt, param); this._aim = _opt; this._load(); //加载模块 }, _load: function() { try { var _modules = this._aim._moduleArr, _core = this._aim._coreDir; _modules.forEach(function(_element) { _element.forEach(function(_ele) { var _index = _ele.lastIndexOf('.'), _moduleType = _ele.substring(_index + 1), _moduleDir = _core + '/' + _ele, _module = null; switch (_moduleType) { case 'js': _module = document.createElement('script'); _module.src = _moduleDir; break; case 'css': _module = document.createElement('link'); _module.href = _moduleDir; _module.rel = 'stylesheet'; break; default: console.error("对不起模块类型不匹配"); break; } document.head.appendChild(_module); }); }, this); } catch (ex) { throw ex; } } }; return new _factory(); //返回工厂 })(jQuery))
呼び出し:
_Req._config({ _coreDir: "../jq-package", _moduleArr: [ ['js/ui-dialog.js', 'css/dialog.css'] ], //模块数组 });
以上がJavaScript モジュールがどのようにロードされるかを解析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。