使用JavaScript怎么對模塊進(jìn)行管理?很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)信宜,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
實(shí)現(xiàn)1
(function(global){ var modules = {}; var define = function (id,factory) { if(!modules[id]){ modules[id] = { id : id, factory : factory }; } }; var require = function (id) { var module = modules[id]; if(!module){ return; } if(!module.exports){ module.exports = {}; module.factory.call(module.exports,require,module.exports,module); } return module.exports; } global.define = define; global.require = require; })(this);
使用示例
define('Hello',function(require,exports,module){ function sayHello() { console.log('hello modules'); } module.exports = { sayHello : sayHello } }); var Hello = require('Hello'); Hello.sayHello();
實(shí)現(xiàn)2
function Module(main,factory){ var modules = {}; factory(function(id,factory){ modules[id] = { id : id, factory : factory, } }); var require = function (id) { var module = modules[id]; if(!module){ return; } if(!module.exports){ module.exports = {}; module.factory.call(module.exports,require,module.exports,module); } return module.exports; } window.require = require; return require(main); }
使用示例
Module('main',function(define){ define('Hello',function(require,exports,module){ function sayHello () { console.log('hello'); } //有效的寫法 module.exports = { sayHello : syaHello; } //或者 exports.sayHello = sayHello; }); //mian,程序入口 define('main',function(require,exports,module){ var Hello = require('Hello'); Hello.sayHello(); }); });
實(shí)現(xiàn)3
另外一種風(fēng)格的模塊管理
(function(global) { var exports = {}; //存儲模塊暴露的接口 var modules = {}; // global.define = function (id,factory) { modules[id] = factory; } global.require = function (id) { if(exports[id])return exports[id]; else return (exports = modules[id]()); } })(this);
使用示例
define('Hello',function(require,exports,module){ function sayHello() { console.log('hello modules'); } //暴露的接口 return { sayHello : sayHello }; }); var Hello = require('Hello'); Hello.sayHello();
實(shí)踐
有了簡易的模塊化管理之后,在項(xiàng)目中,我們就可以采取這樣的結(jié)構(gòu)
-- proj
-- html -- index.html -- css -- js -- common -- module1.js(通用模塊1) -- module2.js(通用模塊2) -- page -- index.js(頁面邏輯) -- lib -- moduler.js 模塊管理庫
配合前端構(gòu)建工具(wepack,grunt,gulp等等),就可以構(gòu)建一個(gè)移動(dòng)端的頁面。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。