隨著 JavaScript 代碼復雜度的提高,JavaScript模塊化這個概念便被提出來,前端社區也不斷地實作前端模塊化,直到 es6 對其進行了規范,下面就介紹 JavaScript 模塊化,本文基于以下要點進行展開
- 什么是AMD,CMD,CommonJS
- AMD,CMD,CommonJS 的區別
- 應用專案中怎么使用
1、AMD
AMD是RequireJS在推廣程序中對模塊定義的規范化產出,AMD規范則是非同步加載模塊,允許指定回呼函式,
AMD標準中,定義了下面兩個API:
- require([module], callback)
- define(id, [depends], callback)
即通過define來定義一個模塊,然后使用 require 來加載一個模塊, 并且,require 還支持CommonJS 的模塊匯出方式,
a.js
define(['package/b',...], function(b) {
function func1 () {
b.sayHi('hello world');
}
return {
func1: func1
}
});
require(['a'], function(a) {
a.func1()
})
2、CMD
CMD是SeaJS在推廣程序中對模塊定義的規范化產出,CMD是同步模塊定義,
//所有模塊都通過define來定義
define(function(require, exports, module) {
// 通過require引入依賴
var $ = require('jquery');
var C = require('./c.js');
exports.sayHi = ...
module.exports = ...
})
二者的區別是前者是對于依賴的模塊提前執行,而后者是延遲執行, 前者推崇依賴前置,而后者推崇依賴就近,即只在需要用到某個模塊的時候再 require,
3、CommonJS 規范---module.exports
前端瀏覽器不支持,Nodejs中使用的是這個規范
exports.sum = function(a,b) {
return a + b;
}
exports.count= function(arr) {
return arr.length;
}
CommonJS的核心思想就是通過 require 方法來同步加載所要依賴的其他模塊,然后通過 exports 或者 module.exports 來匯出需要暴露的介面,
4、ES6---export/import
在ES6中,我們可以使用 import 關鍵字引入模塊,通過 exprot 關鍵字匯出模塊,功能較之于前幾個方案更為強大,也是我們所推崇的,但是由于ES6目前無法在瀏覽器中執行,所以,我們只能通過babel將不被支持的import編譯為當前受到廣泛支持的 require,
import Home from './Home.vue'
export default {
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/246861.html
標籤:其他
上一篇:ajax接收servlet的資料data,傳入Layui的資料表格
下一篇:@RequestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping請求的用法(推薦)
