欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

seajs學(xué)習(xí)教程之基礎(chǔ)篇

 更新時(shí)間:2016年10月20日 15:08:38   作者:royalrover  
Seajs是一個(gè)Web模塊加載框架,追求簡(jiǎn)單、自然的代碼書寫和組織方式,Sea.js 遵循 CMD 規(guī)范,模塊化JS代碼。依賴的自動(dòng)加載、配置的簡(jiǎn)潔清晰,可以讓程序員更多地專注編碼。這篇文章為seajs深入學(xué)習(xí)的第一篇,主要介紹的基礎(chǔ)性的內(nèi)容,感興趣的朋友們可以參考學(xué)習(xí)。

介紹

眾所周知前端開發(fā)模塊化已經(jīng)是大勢(shì)所趨,目前模塊化的規(guī)范有很多,眾所周知的有commonJS,Module/Wrappings和AMD等,而且ES6也著手開始制定模塊化機(jī)制的實(shí)現(xiàn)。類似于c/c++的include,java中的import關(guān)鍵字,在js中也定義了require關(guān)鍵字,用以引進(jìn)依賴模塊。

由于規(guī)范的多樣性,模塊化的實(shí)現(xiàn)也是各有各的不同。

nodejs遵從的就是commonJS規(guī)范,它有著一些形式上的約定:  

      1、require為函數(shù),該函數(shù)接受一個(gè)字符串作為模塊標(biāo)示符

      2、require函數(shù)返回值為該模塊API

      3、require函數(shù)出錯(cuò),則拋出異常

      4、exports導(dǎo)出模塊API

      5、如果有多個(gè)require,則依次加載依賴

但是瀏覽器端加載的模塊卻不像服務(wù)器端,依賴模塊不在本地,需要通過http請(qǐng)求獲取文件,這就涉及到異步加載。但是異步加載并不阻塞代碼的運(yùn)行,如果函數(shù)上下文中應(yīng)用了加載的依賴模塊,而此時(shí)依賴模塊并未加載或者解析完畢,就會(huì)拋出undefined錯(cuò)誤,避免該錯(cuò)誤的發(fā)生可以使用回調(diào)模式。當(dāng)所有依賴模塊均加載完畢,后執(zhí)行代碼。這也就是Module/Wrappings規(guī)范,而seajs基本實(shí)現(xiàn)了該規(guī)范。

SeaJS 是一個(gè)模塊加載器,模塊加載器需要實(shí)現(xiàn)兩個(gè)基本功能:

      1、實(shí)現(xiàn)模塊定義規(guī)范,這是模塊系統(tǒng)的基礎(chǔ)。

      2、模塊系統(tǒng)的啟動(dòng)與運(yùn)行。

剖析

閱讀seajs官網(wǎng)的入門demo,首先在主頁(yè)面引入seajs文件,并設(shè)置入口

// seajs 的簡(jiǎn)單配置
seajs.config({
 base: "../sea-modules/",
 alias: {
 "jquery": "jquery/jquery/1.10.1/jquery.js"
 }
})

// 加載入口模塊
seajs.use("../static/hello/src/main")

其次定義模塊(main.js)

// 所有模塊都通過 define 來定義
define(function(require, exports, module) {

 // 通過 require 引入依賴
 var $ = require('jquery');
 var Spinning = require('./spinning');

 // 通過 exports 對(duì)外提供接口
 exports.doSomething = ...

 // 或者通過 module.exports 提供整個(gè)接口
 module.exports = ...

});

這樣,當(dāng)打開頁(yè)面時(shí),會(huì)調(diào)用seajs.use函數(shù)并加載main.js文件,此時(shí)解析main模塊的依賴,并加載jquery和spining模塊,待這兩個(gè)模塊加載完畢,執(zhí)行回調(diào)函數(shù)。具體執(zhí)行細(xì)節(jié)將會(huì)在分析源碼時(shí)提到。

總結(jié)

以上就是關(guān)于seajs介紹與剖析的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者使用seajs能有所幫助,如果有疑問大家可以留言交流。小編還會(huì)陸續(xù)更新關(guān)于seajs的文章,感興趣的朋友們請(qǐng)繼續(xù)關(guān)注腳本之家。

相關(guān)文章

  • SeaJS入門教程系列之完整示例(三)

    SeaJS入門教程系列之完整示例(三)

    這篇文章主要介紹了SeaJS入門教程系列之完整示例,演示了一個(gè)完整的SeaJS開發(fā)例子,需要的朋友可以參考下
    2014-03-03
  • seajs模塊壓縮問題與解決方法實(shí)例分析

    seajs模塊壓縮問題與解決方法實(shí)例分析

    這篇文章主要介紹了seajs模塊壓縮問題與解決方法,結(jié)合實(shí)例形式分析了seajs模塊壓縮過程中出現(xiàn)的問題及相應(yīng)的解決方法,需要的朋友可以參考下
    2017-10-10
  • Vue實(shí)現(xiàn)圖片懶加載的多種方法詳解

    Vue實(shí)現(xiàn)圖片懶加載的多種方法詳解

    圖片懶加載是前端開發(fā)中一項(xiàng)重要的性能優(yōu)化策略,它能夠明顯縮短頁(yè)面加載時(shí)間,提升用戶的瀏覽體驗(yàn),在本文中,我們將深入探討在Vue開發(fā)時(shí)候如何實(shí)現(xiàn)圖片懶加載,同時(shí)探討多種實(shí)現(xiàn)途徑,需要的朋友可以參考下
    2023-08-08
  • Seajs 簡(jiǎn)易文檔 提供簡(jiǎn)單、極致的模塊化開發(fā)體驗(yàn)

    Seajs 簡(jiǎn)易文檔 提供簡(jiǎn)單、極致的模塊化開發(fā)體驗(yàn)

    這篇文章主要介紹了Seajs 簡(jiǎn)易文檔 提供簡(jiǎn)單、極致的模塊化開發(fā)體驗(yàn),非官方文檔,整理來自己官方文檔的文字與實(shí)例,方便速查。需要的朋友可以參考下
    2016-04-04
  • seajs學(xué)習(xí)教程之基礎(chǔ)篇

    seajs學(xué)習(xí)教程之基礎(chǔ)篇

    Seajs是一個(gè)Web模塊加載框架,追求簡(jiǎn)單、自然的代碼書寫和組織方式,Sea.js 遵循 CMD 規(guī)范,模塊化JS代碼。依賴的自動(dòng)加載、配置的簡(jiǎn)潔清晰,可以讓程序員更多地專注編碼。這篇文章為seajs深入學(xué)習(xí)的第一篇,主要介紹的基礎(chǔ)性的內(nèi)容,感興趣的朋友們可以參考學(xué)習(xí)。
    2016-10-10
  • seajs實(shí)現(xiàn)強(qiáng)制刷新本地緩存的方法分析

    seajs實(shí)現(xiàn)強(qiáng)制刷新本地緩存的方法分析

    這篇文章主要介紹了seajs實(shí)現(xiàn)強(qiáng)制刷新本地緩存的方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了seajs強(qiáng)制刷新本地緩存的原理、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-10-10
  • seaJs的模塊定義和模塊加載淺析

    seaJs的模塊定義和模塊加載淺析

    這篇文章主要介紹了seaJs的模塊定義和模塊加載淺析,以及模塊間的依賴關(guān)系等問題,需要的朋友可以參考下
    2014-06-06
  • seajs中模塊的解析規(guī)則詳解和模塊使用總結(jié)

    seajs中模塊的解析規(guī)則詳解和模塊使用總結(jié)

    這篇文章主要介紹了seajs中模塊的解析規(guī)則詳解和模塊使用總結(jié),需要的朋友可以參考下
    2014-03-03
  • seajs中最常用的7個(gè)功能、配置示例

    seajs中最常用的7個(gè)功能、配置示例

    這篇文章主要介紹了seajs中最常用的7個(gè)功能、配置,結(jié)合實(shí)例形式簡(jiǎn)單分析了seajs中常用的項(xiàng)目配置、模塊加載、定義、獲取等操作技巧,需要的朋友可以參考下
    2017-10-10
  • SeaJS入門教程系列之使用SeaJS(二)

    SeaJS入門教程系列之使用SeaJS(二)

    這篇文章主要介紹了SeaJS入門教程系列之使用SeaJS,著重介紹了SeaJS的使用方法、關(guān)鍵方法的使用等,需要的朋友可以參考下
    2014-03-03

最新評(píng)論