摘要:是中提供的模塊化編程的方案,是中新增。所以人們產生了這樣的需求,希望有支持兩種風格的通用模式,于是通用模塊規范誕生了。模塊化對模塊進行導出導入的
AMD、CMD、CommonJs、UMD是ES5中提供的模塊化編程的方案,import/export是ES6中新增。
1.AMD-異步模塊定義
AMD是RequireJS在推廣過程中對模塊定義的規范化產出,它是一個概念,RequireJS是對這個概念的實現,就好比JavaScript語言是對ECMAScript規范的實現。AMD是一個組織,RequireJS是在這個組織下自定義的一套腳本語言。
RequireJS:是一個AMD框架,可以異步加載JS文件,按照模塊加載方法,通過define()函數定義,第一個參數是一個數組,里面定義一些需要依賴的包,第二個參數是一個回調函數,通過變量來引用模塊里面的方法,最后通過return來輸出。
是一個依賴前置、異步定義的AMD框架(在參數里面引入js文件),在定義的同時如果需要用到別的模塊,在最前面定義好即在參數數組里面進行引入,在回調里面加載。
require([module], callback);
2.CMD---是SeaJS在推廣過程中對模塊定義的規范化產出,是一個同步模塊定義,是SeaJS的一個標準,SeaJS是CMD概念的一個實現,SeaJS是淘寶團隊提供的一個模塊開發的js框架
通過define()定義,沒有依賴前置,通過require加載jQuery插件,CMD是依賴就近,在什么地方使用到插件就在什么地方require該插件,即用即返,這是一個同步的概念。
3.commonJS規范---是通過module.exports定義的,在前端瀏覽器里面并不支持module.exports,通過node.js后端使用的。Nodejs端是使用CommonJS規范的,前端瀏覽器可以利用browserify插件支持commonJS,可以講js文件打包到一個main.js,所以不會出現瀏覽require新模塊的時候,需要異步加載的情況,更不會出現瀏覽器假死。
瀏覽器不兼容CommonJS的根本原因,在于缺少四個Node.js環境的變量(module、exports、require、global)
輸出方式有2種:默認輸出---module export 和帶有名字的輸出---exports.area。
4.UMD-通用模塊規范
既然CommonJs和AMD風格一樣流行,似乎缺少一個統一的規范。所以人們產生了這樣的需求,希望有支持兩種風格的“通用”模式,于是通用模塊規范(UMD)誕生了。為了保證通用性,犧牲的易用性,這個模式略難看,但是它兼容了AMD和CommonJS,同時還支持老式的“全局”變量規范。
5.ES6模塊化---export/import對模塊進行導出導入的
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/101571.html
摘要:二模塊化誤區加快加載和執行的速度,一直是前端優化的一個熱點。結果文件減少,也達到了預期的效果。避免不必要的延遲。最后再根據文件的功能類型,來決定是放在頁面的頭部還是尾部。 注:本文是純技術探討文,無圖無笑點,希望您喜歡 一.前言 軟件行業極其缺乏前端人才這是圈內的共識了,某種程度上講,同等水平前端的工資都要比后端高上不少,而圈內的另一項共識則是——網頁是公司的臉面! 幾年前,谷歌的一項...
摘要:模塊演化簡史從屬于筆者的開發基礎與工程實踐。首個采樣該設計模式的界面庫當屬,其是創建于年。允許我們定義模塊,并且在顯式地聲明其依賴模塊而由框架完成自動注入。而最后的模塊化規范定義于年正式發布,也就是被命名為。 JavaScript 模塊演化簡史 從屬于筆者的 Web 開發基礎與工程實踐。本文主要總結自 The Evolution of JavaScript Modularity、Nat...
摘要:模塊化編程,已經成為一個迫切的需求。隨著網站功能逐漸豐富,網頁中的也變得越來越復雜和臃腫,原有通過標簽來導入一個個的文件這種方式已經不能滿足現在互聯網開發模式,我們需要團隊協作模塊復用單元測試等等一系列復雜的需求。 隨著網站逐漸變成互聯網應用程序,嵌入網頁的Javascript代碼越來越龐大,越來越復雜。網頁越來越像桌面程序,需要一個團隊分工協作、進度管理、單元測試等等......開發...
摘要:掛機科了次使用這個結構,匿名函數就有了自己的執行環境或閉包,然后我們立即執行。注意,匿名函數的圓括號是必需的,因為以關鍵字開頭的語句通常被認為是函數聲明請記住,中不能使用未命名的函數聲明。 這是專門探索 JavaScript 及其所構建的組件的系列文章的第 20 篇。 想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等著你! 如果你錯過了前面的章節,可以在這里找到它們: ...
摘要:作為新手,發現對于其的模塊機制,不是很理解。的概念出現有效規范了的模塊化規范。不再需要對象作為命名空間比如對象,未來這些功能可以通過模塊提供。瀏覽器使用模塊的語法如下導出對象和變量導出類對象引入加載機制詳見引用資料高靜的并行加載與順序執行 1. 概述 js發展初期暴露了其缺陷:缺乏模塊,后來提出了commonJS規范來規范其模塊的規范。作為JavaScript新手,發現對于其JavaS...
摘要:作為新手,發現對于其的模塊機制,不是很理解。的概念出現有效規范了的模塊化規范。不再需要對象作為命名空間比如對象,未來這些功能可以通過模塊提供。瀏覽器使用模塊的語法如下導出對象和變量導出類對象引入加載機制詳見引用資料高靜的并行加載與順序執行 1. 概述 js發展初期暴露了其缺陷:缺乏模塊,后來提出了commonJS規范來規范其模塊的規范。作為JavaScript新手,發現對于其JavaS...
閱讀 3543·2023-04-25 19:56
閱讀 1660·2021-11-12 10:36
閱讀 1781·2021-11-08 13:19
閱讀 1544·2019-08-30 14:06
閱讀 3032·2019-08-30 11:01
閱讀 1711·2019-08-29 13:23
閱讀 2731·2019-08-29 11:18
閱讀 3422·2019-08-26 13:35