国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

seajs和requirejs的那些事兒

zorpan / 3325人閱讀

摘要:遵循的是異步模塊定義規(guī)范,遵循的是通用模塊定義規(guī)范。規(guī)范的不同,導(dǎo)致了兩者的不同。在嘗試讓第三方類庫(kù)修改自身來(lái)支持,目前只有少數(shù)社區(qū)采納。是沒(méi)有明顯的,是明顯沒(méi)有。無(wú)這方面的支持。

發(fā)布之后發(fā)現(xiàn)存在一個(gè)顯示的問(wèn)題,大家可以移步到我的簡(jiǎn)書參考,謝謝大家!!!
我的簡(jiǎn)書《seajs和requirejs技術(shù)指導(dǎo)文檔》

昨天到今天,老衲翻閱數(shù)十篇技術(shù)文檔,為了搞明白seajs(CMD)和 requireJS(AMD)到底是個(gè)什么鬼,
當(dāng)然也包括官網(wǎng)了,只是都不太盡如人意,理解起來(lái)感覺(jué)好費(fèi)解,然后跟我的小伙伴交流了一晚上之后發(fā)現(xiàn)
了一個(gè)很形象的比喻,對(duì)于AMD和CMD的模式,其實(shí)理解的時(shí)候我借助了MVC這個(gè)結(jié)構(gòu)來(lái)理解,感覺(jué)理解起來(lái)
相對(duì)容易一點(diǎn)兒,對(duì)于MVC這個(gè)結(jié)構(gòu)我不做過(guò)多介紹,有興趣的可以去看看
http://www.cnblogs.com/aaronj...
下面進(jìn)入我們正題,說(shuō)的不好的地方歡迎指正,一塊學(xué)習(xí)進(jìn)步.

咱們說(shuō)道說(shuō)道這兩個(gè)模塊兒開(kāi)發(fā)的有趣的地方吧,我會(huì)用咱們常說(shuō)的一句“我負(fù)責(zé)貌美如花,你負(fù)責(zé)掙錢養(yǎng)家”來(lái)
說(shuō)道說(shuō)道,其實(shí)說(shuō)白了就是分工明確:
第一步、前端頁(yè)面的引入接口,他的作用就是進(jìn)去接口;(PS:前端頁(yè)面直接展示給用戶,相當(dāng)于你的女朋友只負(fù)責(zé)貌美如
花,但是你需要提供,提供一切的物質(zhì)支持就是money[對(duì)于requirejs和seajs來(lái)說(shuō)就是給前端頁(yè)面提供一個(gè)接口]);
第二步、這個(gè)接口負(fù)責(zé)所有的依賴文件,還有需要的配置各種參數(shù),支持文件等等。
換句話說(shuō)就是頁(yè)面上最直觀的顯示內(nèi)容的調(diào)用方法,還有各種事件等等
(就相當(dāng)于你,準(zhǔn)備怎樣讓你的女朋友貌美如花。你要給提供化妝品、衣服之類的,沒(méi)事肯定少不了);
第三步、到了這一層,其實(shí)就是具體的邏輯的處理了,這一層的邏輯處理也是給第二層提供依賴的文件(
就相當(dāng)于,你要給你的女朋友買這買那,你具體的工作是什么,做多少份兼職可以滿足你的女朋友的物質(zhì)需求)

上邊兒說(shuō)了這么多,其實(shí)就是為了想讓大家理解一下requirejs和seajs這兩種模塊化開(kāi)發(fā)的形式是什么,怎樣分工的,
是不是多少有點(diǎn)兒進(jìn)入狀態(tài)了

first.咱們先來(lái)說(shuō)一下requirejs


頁(yè)面的引入接口

其中 r-index.js 就是相當(dāng)于分工的第二步所在的位置,在這里邊兒,我們進(jìn)行依賴文件的配置,
和對(duì)第一步前端頁(yè)面的顯示的支持
我們來(lái)看一下r-index.js是怎樣寫的

requirejs.config({

baseUrl: "js/",
paths: {
    hammer: "lib/hammer.min",
    jquery:"lib/jquery.min",
    cookie:"lib/jquery.cookie",
    template:"lib/template"
} });

requirejs(["hammer", "jquery", "cookie","template","app/data"],
function(a,b,c,template,service) { service.getAll();

service.getOne(); }

對(duì)這個(gè)就是進(jìn)行基礎(chǔ)的業(yè)務(wù)的處理,

"app/data"就是具體的邏輯的處理,這些給第二步提供了所有的邏輯支持

下面我們來(lái)看一下 data.js data.js 所有第二步用到的邏輯都放在這里邊進(jìn)行處理

define(["jquery","cookie"],function () {

  return {
         /*所有數(shù)據(jù)*/
         getAll:function (){
           return alldata;
         },
         /*指定id的數(shù)據(jù)*/
         getOne:function (id){
             
         }
     }
 })

有了上邊兒requirejs 的案例基礎(chǔ)我們來(lái)理解seajs的時(shí)候就方便的多了。
second.下面我們來(lái)看一下seajs的書寫規(guī)范


首先說(shuō)一下第一步,接口

然后看一下第二步的書寫方式

define(function (requie, exports, module) {

//依賴可以就近書寫
var hammer = require("js/lib/hammer.min");     ...     var app = requie("app/data");       
app.getAll();
app.getOne();
...
//軟依賴
if (status) {

    var b = requie("./b");
    b.test();
} });

然后看一下第三步的書寫方式

 module.export =  {
            /*所有數(shù)據(jù)*/
            getAll:function (){
              return alldata;
            },
            /*指定id的數(shù)據(jù)*/
            getOne:function (id){
                
            }
        }
    //需要注意的以下的寫法是錯(cuò)誤的
    export =  {
            /*所有數(shù)據(jù)*/
            getAll:function (){
              return alldata;
            },
            /*指定id的數(shù)據(jù)*/
            getOne:function (id){
                
            }
        }

最后我們說(shuō)一下requirejs和seajs的相同點(diǎn)和不同點(diǎn)
相同之處

RequireJS 和 SeaJS 都是模塊加載器,倡導(dǎo)的是一種模塊化開(kāi)發(fā)理念, 核心價(jià)值是讓 JavaScript
的模塊化開(kāi)發(fā)變得更簡(jiǎn)單自然。

不同之處,兩者的區(qū)別如下:

定位有差異。RequireJS 想成為瀏覽器端的模塊加載器,同時(shí)也想成為 Rhino / Node 等環(huán)境的模塊加載器。 SeaJS
則專注于 Web 瀏覽器端,同時(shí)通過(guò) Node 擴(kuò)展的方式可以很方便跑在 Node 服務(wù)器端。

遵循的規(guī)范不同。RequireJS 遵循的是 AMD(異步模塊定義)規(guī)范,SeaJS 遵循的是 CMD (通用模塊定義)規(guī)范。
規(guī)范的不同,導(dǎo)致了兩者 API 的不同。SeaJS 更簡(jiǎn)潔優(yōu)雅,更貼近 CommonJS Modules/1.1 和 Node
Modules 規(guī)范。

社區(qū)理念有差異。RequireJS 在嘗試讓第三方類庫(kù)修改自身來(lái)支持 RequireJS,目前只有少數(shù)社區(qū)采納。 SeaJS
不強(qiáng)推,采用自主封裝的方式來(lái)“海納百川”,目前已有較成熟的封裝策略。

代碼質(zhì)量有差異。RequireJS 是沒(méi)有明顯的 bug,SeaJS 是明顯沒(méi)有 bug。

對(duì)調(diào)試等的支持有差異。SeaJS 通過(guò)插件,可以實(shí)現(xiàn) Fiddler 中自動(dòng)映射的功能, 還可以實(shí)現(xiàn)自動(dòng) combo
等功能,非常方便。RequireJS 無(wú)這方面的支持。

插件機(jī)制不同。RequireJS 采取的是在源碼中預(yù)留接口的形式,源碼中留有為插件而寫的代碼。SeaJS 采取的插件機(jī)制則與
JavaScript 語(yǔ)言 以及Node 的方式一致:開(kāi)放自身,讓插件開(kāi)發(fā)者可直接訪問(wèn)或修改,從而非常靈活,可以實(shí)現(xiàn)各種類型的插件。

還有不少細(xì)節(jié)差異就不多說(shuō)了。

總之,SeaJS 從 API 到實(shí)現(xiàn),都比 RequireJS 更簡(jiǎn)潔優(yōu)雅。如果說(shuō) RequireJS 是 Prototype 類庫(kù)的話,則 SeaJS 是 jQuery 類庫(kù)。

謝謝一下文檔的參考

https://my.oschina.net/feluma...
https://github.com/seajs/seaj... http://yslove.net/seajs/
https://github.com/seajs/seaj...
http://blog.csdn.net/wl110231...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/91151.html

相關(guān)文章

  • 前端模塊化那些事兒

    摘要:規(guī)范異步模塊聲明規(guī)范公共模塊聲明模塊化的核心價(jià)值模塊化最核心的價(jià)值在于解決不同文件之間的分工和調(diào)用問(wèn)題,即依賴關(guān)系。 一、什么是模塊? 定義:具有相同屬性和行為的事物的集合在前端中:將一些屬性比較類似和行為比較類似的內(nèi)容放在同一個(gè)js文件里面,把這個(gè)js文件稱為模塊目的:為了每個(gè)js文件只關(guān)注與自身有關(guān)的事情,讓每個(gè)js文件各行其職 二、什么是模塊化?CommonJS是什么?AMD和C...

    aaron 評(píng)論0 收藏0
  • Javascript模塊全攬

    摘要:要求模塊編寫必須在真正的代碼之外套上一層規(guī)定的代碼包裝,樣子看起來(lái)是這樣的模塊代碼通過(guò)傳遞一個(gè)簽名為的回調(diào)函數(shù)給函數(shù),就可以把需要注入的變量和函數(shù)注入到模塊代碼內(nèi)。 之前寫的文章急速Js全棧教程得到了不錯(cuò)的閱讀量,霸屏掘金頭條3天,點(diǎn)贊過(guò)千,閱讀近萬(wàn),甚至還有人在評(píng)論區(qū)打廣告,可見(jiàn)也是一個(gè)小小的生態(tài)了;)。看來(lái)和JS全棧有關(guān)的內(nèi)容,還是有人頗有興趣的。 showImg(https://...

    lily_wang 評(píng)論0 收藏0
  • JS異步那些事 五 (異步腳本加載)

    摘要:遵循的是異步模塊定義規(guī)范,遵循的是通用模塊定義規(guī)范。不同的腳本加載這個(gè)模塊,得到的都是同一個(gè)實(shí)例。關(guān)于異步那些事就寫到這里了,很多地方理解的不夠深刻希望大家多多指教。 JS異步那些事 一 (基礎(chǔ)知識(shí))JS異步那些事 二 (分布式事件)JS異步那些事 三 (Promise)JS異步那些事 四(HTML 5 Web Workers)JS異步那些事 五 (異步腳本加載) 異步腳本加載 阻塞性...

    terasum 評(píng)論0 收藏0
  • JavaScript模塊發(fā)展變遷史

    摘要:前兩天有朋友拿了這樣一段代碼來(lái)問(wèn)我,我想把一段代碼寫成模塊化的樣子,你幫我看看是不是這樣的。的一個(gè)好處在與依賴前置,所有被使用到的模塊都會(huì)被提前加載好,從而加快運(yùn)行速度。 前兩天有朋友拿了這樣一段代碼來(lái)問(wèn)我,我想把一段代碼寫成模塊化的樣子,你幫我看看是不是這樣的。,代碼大概是這樣的: (function(global) { var myModules = { n...

    姘存按 評(píng)論0 收藏0
  • 再談JavaScript模塊化

    摘要:應(yīng)用日益復(fù)雜,模塊化已經(jīng)成為一個(gè)迫切需求。異步模塊加載機(jī)制。引用的資源列表太長(zhǎng),懶得回調(diào)函數(shù)中寫一一對(duì)應(yīng)的相關(guān)參數(shù)假定這里引用的資源有數(shù)十個(gè),回調(diào)函數(shù)的參數(shù)必定非常多這就是傳說(shuō)中的 簡(jiǎn)述 緣起 模塊通常是指編程語(yǔ)言所提供的代碼組織機(jī)制,利用此機(jī)制可將程序拆解為獨(dú)立且通用的代碼單元。 模塊化主要是解決代碼分割、作用域隔離、模塊之間的依賴管理以及發(fā)布到生產(chǎn)環(huán)境時(shí)的自動(dòng)化打包與處理等多個(gè)方面...

    MorePainMoreGain 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<