筆記 討論 什麼是模組化開發以及最基本的應用

2021-08-01 02:56:12 字數 1698 閱讀 8331

相信大家在合作開發的時候會遇到乙個問題,就是設定引數的侷限性。比如說成員1用了var a,而忘了說,成員2頁用了var a。這時如果是區域性變數還好說,會被釋放,但是如果是全域性變數的話就會導致全域性變數被影響。

合作開發容易發生衝突『。

那麼有的人就想利用塊級作用域來解決問題,但是這樣子就又共用不了模組。

又有的人會想,用命名空間來解決辦法,雖然能決絕問題,但是難免某些人記錯導致小機率會產生衝突。

這些問題對於企業來說問題是極其嚴重的!

這時,腦子靈光的人都會想到,用塊級作用域以及命名空間互相結合來解決問題。

因此就誕生了模組化開發!比如說requirejs,seajs,commonjs...

就拿seajs來說吧

seajs的使用

。定義模組

define(function( require, exports, module )

//通過exports把name方法 提供給外部使用

exports.name = name;

});

。引用模組

seajs.use('模組的路徑', function(ex){});

這樣就可以做到在內部建立的變數名字不會影響到全域性變數,又可以通過呼叫的方式引入。

我們通過乙個例子來說明。

實現拖放div、改變div的大小、限定拖放範圍。

html檔案:

然後是控制id為box3的div拖動方法檔案:

/***********box3***************/

define(function (require, exports, module) ;

document.onmouseup = function (ev) ;

return false;}}

exports.drag = drag;

});

控制id為box1以及id為box2的div拖動縮放效果檔案:

/*********box1&box2*************/

define(function (require, exports, module) ;

document.onmouseup = function () ;

return false;}}

exports.scale = scale;

});

限定拖放範圍的公用模組檔案:

/***************公用模組*****************/

define(function (require, exports, module) else if (p >max)

return p

}exports.border = border;

});

最後我們把分開的模組整合到一起:

/***************整合檔案*********************/

define(function (require, exports, module)

});

通過以上例子我們可以發現,在過程中能夠存在著一些相同變數定義名稱,但是最後實現效果卻互不影響。著就是模組化的魅力之處。

模組化開發

講模組化開發之前,我們先了解一下 傳統開發模式 是什麼?比如說a所在的公司在做乙個專案,公司安排a跟b還有c三個人一起協同開發,a負責一部分功能塊,b負責另一部分功能塊,把專案的功能分成一塊一塊,這適用於多人協作開發,每個人負責不同的功能塊,當然,這其中有人是負責整合的,有人是負責開發公共功能塊的等...

模組化開發

commonjs規範 同步模式載入模組,導致效率低 node.js環境 乙個檔案就是乙個模組 每個模組都有單獨地作用域 通過module.exports匯出成員 通過require函式載入模組 amd asynchronous module definition 規範 使用相對複雜 模組js檔案請求...

模組化開發

寫在前面 面試時常被問到,你知道什麼是模組化開發嗎?模組化開發能帶來什麼好處?下面的內容可以幫助你簡單了解什麼是模組化開發,從對它模糊的印象中看到一些清晰的輪廓,幫助你了解模組化開發的現狀,以對選擇哪種模組化開發有個選擇的方向。目錄 什麼是模組化開發 模組化開發的意義 模組化開發的好處 1 避免變數...