這篇文章主要為大家詳細介紹了js模組載入方式的初級學習資料,具有一定的參考價值,有興趣的小夥伴們可以參考一下
簡介:前端模組化開發日漸鼎盛,如何將零散的插件或是普通的js腳本檔案統一管理與引用,是眾多開發者共同的目標。本人是從事.net開發的,最近對前端的一些東西特別的感興趣,也會嘗試的夾雜一點自己的想法,寫一些小東西。東西不屌,但是感覺用起來還是方便那麼一點的。
下面就展示一下簡短的小程式碼。
中心思想:透過外部呼叫事先封裝好的模組載入方法,傳入參數(包括主目錄及模組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中文網其他相關文章!