angularJS1筆記-(20)-模組化載入機制seajs

來源:互聯網
上載者:User

標籤:實現   rac   head   target   sha   cal   turn   問題   put   

SeaJS是一個遵循CMD規範的JavaScript模組載入架構,可以實現JavaScript的模組化開發及載入機制。

與jQuery等JavaScript架構不同,SeaJS不會擴充封裝語言特性,而只是實現JavaScript的模組化及按模組載入。SeaJS的主要目的是令JavaScript開發模組化並可以輕鬆愉悅進行載入,將前端工程師從繁重的JavaScript檔案及對象依賴處理中解放出來,可以專註於代碼本身的邏輯。SeaJS可以與jQuery這類架構完美整合。使用SeaJS可以提高JavaScript代碼的可讀性和清晰度,解決目前JavaScript編程中普遍存在的依賴關係混亂和代碼糾纏等問題,方便代碼的編寫和維護。

html:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>seajs體驗</title>    <script src="../../node_modules/seajs/dist/sea.js"></script>    <script>        //在seajs中模組的引用必須要用完整的相對路徑或者是從根目錄開始寫完整        seajs.use(‘./calculator.js‘,function (calculator) {            console.log(calculator.add(1,3));            console.log(calculator.subtract(4,8));        })    </script></head><body></body></html>

  js:

//自訂一個模組 遵循seajs規範define(function (require, exports, module) {    //此處是模組的私人空間    function add(a,b) {        return parseFloat(a) + parseFloat(b);    }    function subtract(a,b) {        return parseFloat(a)-parseFloat(b);    }    //暴露模組的公用成員    exports.add = add;    exports.subtract = subtract;});

 這裡通過use方法的方式引入模組,我們還可以通過require的方式引入模組,一般是js和js之間的調用,這種比較常用。

convertor.js:

define(function (require,exports,module) {    //公開一些轉換邏輯    exports.convertToNumber = function (input) {        return parseFloat(input);    }})

  calculator.js:

define(function (require, exports, module) {    var convertor = require(‘./convertor.js‘);    //此處是模組的私人空間    function add(a,b) {        return convertor.convertToNumber(a) + convertor.convertToNumber(b);    }    function subtract(a,b) {        return convertor.convertToNumber(a)-convertor.convertToNumber(b);    }    //暴露模組的公用成員    exports.add = add;    exports.subtract = subtract;});

  這裡有個問題,如果exports.xxx = xxx;這樣的方式暴露公用成員的話其實是都掛載在module下的,如果換成module.exports = XXX;那麼就會只暴露出這一個成員變數出去.最終到處的以他為準。此外還可以使用return的方式暴露成員,return的優先順序別最高。一般來說我們不用return,而是在exports.xxx和module.exports=xxx中做選擇。

 

angularJS1筆記-(20)-模組化載入機制seajs

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.