1. 程式人生 > >angularJS1筆記-(20)-模塊化加載機制seajs

angularJS1筆記-(20)-模塊化加載機制seajs

定義 對象 ref 加載 true 可讀性 scrip 調用 公開

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