<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript模塊規范之AMD規范和CMD規范_javascript技巧

        來源:懂視網 責編:小采 時間:2020-11-27 21:44:54
        文檔

        JavaScript模塊規范之AMD規范和CMD規范_javascript技巧

        JavaScript模塊規范之AMD規范和CMD規范_javascript技巧:模塊化是指在解決某一個復雜問題或者一系列的雜糅問題時,依照一種分類的思維把問題進行系統性的分解以之處理。模塊化是一種處理復雜系統分解為代碼結構更合理,可維護性更高的可管理的模塊的方式。可以想象一個巨大的系統代碼,被整合優化分割成邏輯性很強的
        推薦度:
        導讀JavaScript模塊規范之AMD規范和CMD規范_javascript技巧:模塊化是指在解決某一個復雜問題或者一系列的雜糅問題時,依照一種分類的思維把問題進行系統性的分解以之處理。模塊化是一種處理復雜系統分解為代碼結構更合理,可維護性更高的可管理的模塊的方式。可以想象一個巨大的系統代碼,被整合優化分割成邏輯性很強的

        模塊化是指在解決某一個復雜問題或者一系列的雜糅問題時,依照一種分類的思維把問題進行系統性的分解以之處理。模塊化是一種處理復雜系統分解為代碼結構更合理,可維護性更高的可管理的模塊的方式。可以想象一個巨大的系統代碼,被整合優化分割成邏輯性很強的模塊時,對于軟件是一種何等意義的存在。對于軟件行業來說:解耦軟件系統的復雜性,使得不管多么大的系統,也可以將管理,開發,維護變得“有理可循”。

        還有一些對于模塊化一些專業的定義為:模塊化是軟件系統的屬性,這個系統被分解為一組高內聚,低耦合的模塊。那么在理想狀態下我們只需要完成自己部分的核心業務邏輯代碼,其他方面的依賴可以通過直接加載被人已經寫好模塊進行使用即可。

        一、AMD

        AMD就只有一個接口:define(id?,dependencies?,factory);

        它要在聲明模塊的時候制定所有的依賴(dep),并且還要當做形參傳到factory中,像這樣:

        代碼如下:
        define(['dep1','dep2'],function(dep1,dep2){...});

        要是沒什么依賴,就定義簡單的模塊,下面這樣就可以啦


        這里有define,把東西包裝起來,那Node實現中怎么沒看到有define關鍵字呢,它也要把東西包裝起來,其實,只是Node隱式包裝了而已..

        RequireJS就是實現了AMD規范的

        二、CMD

        玉伯寫了seajs,就是遵循他提出的CMD規范,比AMD稍微強大點,用起來感覺也方便些

        三、AMD與CMD的區別

        CMD相當于按需加載,定義一個模塊的時候不需要立即制定依賴模塊,在需要的時候require就可以了,比較方便;而AMD則相反,定義模塊的時候需要制定依賴模塊,并以形參的方式引入factory中

        //AMD方式定義模塊


        //CMD


        而SEAJS也有use功能也是需要先引入所有依賴的模塊,如

        四、插件支持

        但全球有兩種比較流行的 JavaScript 模塊化體系,一個是 Node 實現的 CommonJS,另外一個是 AMD。很多類庫都同時支持 AMD 和 CommonJS,但是不支持 CMD。或許國內有很多 CMD 模塊,但并沒有在世界上流行起來。

        現在比較火的 React 及周邊類庫,就是直接使用 CommonJS 的模塊體系,使用 npm 管理模塊,使用 Browserify 打包輸出模塊。
        不久的將來 ES6 中新的模塊化標準,可能就都得遵循新的標準了,什么AMD、CMD可能到時也不會怎么用了。

        但是目前來說,前端開發沒有用模塊化編程就真的out的了,而目前的模塊化編程,本人還是建議用SEAJS,雖然很多插件需要追加或修改一小塊代碼才能支持。但改過一次就能反復使用,也不會影響其它標準的支持。總體還算是比較方便實用的。

        單獨解釋AMD 與 CMD 區別到底在哪里?

        看了以上 AMD,requireJS 與 CMD, seaJS的簡單介紹會有點感覺模糊,總感覺較為相似。因為像 requireJS 其并不是只是純粹的AMD固有思想,其也是有CMD規范的思想,只不過是推薦 AMD規范方式而已, seaJS也是一樣。

        下面是玉伯對于 AMD 與 CMD 區別的解釋:

        AMD 是 RequireJS 在推廣過程中對模塊定義的規范化產出。

        CMD 是 SeaJS 在推廣過程中對模塊定義的規范化產出。

        類似的還有 CommonJS Modules/2.0 規范,是 BravoJS 在推廣過程中對模塊定義的規范化產出還有不少??

        這些規范的目的都是為了 JavaScript 的模塊化開發,特別是在瀏覽器端的。

        目前這些規范的實現都能達成瀏覽器端模塊化開發的目的。

        區別:

        1. 對于依賴的模塊,AMD 是提前執行,CMD 是延遲執行。不過 RequireJS 從 2.0 開始,也改成可以延遲執行(根據寫法不同,處理方式不同)。CMD 推崇 as lazy as possible.

        2. CMD 推崇依賴就近,AMD 推崇依賴前置。看代碼:

        // CMD

        // AMD 默認推薦的是

        雖然 AMD 也支持 CMD 的寫法,同時還支持將 require 作為依賴項傳遞,但 RequireJS 的作者默認是最喜歡上面的寫法,也是官方文檔里默認的模塊定義寫法。

        3. AMD 的 API 默認是一個當多個用,CMD 的 API 嚴格區分,推崇職責單一。比如 AMD 里,require 分全局 require 和局部 require,都叫 require。CMD 里,沒有全局 require,而是根據模塊系統的完備性,提供 seajs.use 來實現模塊系統的加載啟動。

        CMD 里,每個 API 都簡單純粹。

        4. 還有一些細節差異,具體看這個規范的定義就好,就不多說了。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript模塊規范之AMD規范和CMD規范_javascript技巧

        JavaScript模塊規范之AMD規范和CMD規范_javascript技巧:模塊化是指在解決某一個復雜問題或者一系列的雜糅問題時,依照一種分類的思維把問題進行系統性的分解以之處理。模塊化是一種處理復雜系統分解為代碼結構更合理,可維護性更高的可管理的模塊的方式。可以想象一個巨大的系統代碼,被整合優化分割成邏輯性很強的
        推薦度:
        標簽: CMD js 模塊
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲午夜精品在线| 久久久无码精品亚洲日韩蜜桃 | 免费无码AV一区二区| 拨牐拨牐x8免费| 亚洲国产午夜中文字幕精品黄网站 | 999国内精品永久免费视频| 亚洲国产精品久久人人爱| 中文毛片无遮挡高潮免费| 亚洲三级在线视频| 国产精品黄页免费高清在线观看| 亚洲一区精品伊人久久伊人| 免费看黄的成人APP| 亚洲午夜精品久久久久久人妖| 美女视频黄免费亚洲| 日韩中文无码有码免费视频| 在线亚洲精品视频| 日韩欧毛片免费视频| 亚洲成a人无码亚洲成av无码| 88av免费观看| 亚洲午夜福利AV一区二区无码| 日本高清不卡aⅴ免费网站| 精品亚洲麻豆1区2区3区| 成全高清视频免费观看| 免费无遮挡无码视频在线观看| 亚洲综合色自拍一区| 最近新韩国日本免费观看 | a在线观看免费网址大全| 亚洲日韩乱码久久久久久| 女人18一级毛片免费观看| 国产精品免费久久久久久久久 | 免费一级毛片在线播放放视频| 亚洲人精品午夜射精日韩| 最近中文字幕无免费| 国产精品亚洲五月天高清| 亚洲一区无码中文字幕| 国产桃色在线成免费视频| 一级毛片免费视频网站| 久久综合亚洲鲁鲁五月天| 国产特级淫片免费看| 高清一区二区三区免费视频| 亚洲乱码日产精品一二三|