向大神致敬,也是我接觸框架得開始。html
感謝張鑫旭大神,專業!致敬~ sea.js的7個API,都在下面得連接中有詳細說明:前端
http://www.zhangxinxu.com/sp/seajs/docs/zh-cn/bootstrapping.html
seajs.use 經過 use 方法,能夠在頁面中加載任意模塊git
seajs.config 可使用 config
方法來配置加載器github
define 使用全局函數 define
來定義模塊bootstrap
require 函數用來訪問其餘模塊提供的 API.瀏覽器
seajs.async 該方法可用來異步加載模塊,並在加載完成後執行回調函數。app
exports 用來向外提供模塊的 API框架
module.exports exports
對象由模塊系統建立,這不能知足開發者的全部需求, 有時候會但願 exports
是某個類的實例。 這時可用 module.exports
來實現異步
玉伯(王保平),淘寶前端類庫 KISSY、前端模塊化開發框架SeaJS、前端基礎類庫Arale的創始人。async
Q: Sea.js是什麼?致力於解決什麼問題?
A: Sea.js是一個很純粹小巧的模塊加載器,它只解決一個問題:前端代碼的模塊化。經過Sea.js,能夠將大量JavaScript代碼封裝成一個個小模塊,而後輕鬆實現模塊的加載和依賴管理。A:
Arale則是一套知足支付寶需求的通用模塊集合,是一套基於模塊化的前端基礎類庫,目前具有100多個模塊,簡單易用。(簡單瞭解下,萬一從此用的到呢)
Q: 發起Sea.js項目的初衷是什麼?它的本質意義是什麼?
A:在前端開發過程當中,常常會出現一個單文件幾千行甚至近萬行的狀況。這種大文件,對協做開發、後續維護、性能調優等都不利。
Sea.js初衷是幫助前端開發工程師將大文件拆分紅小文件,能保持小顆粒度的模塊化開發,同時不須要過多考慮依賴關係,讓依賴管理輕鬆自如,讓模塊化開發變得更天然,就像瀏覽器原生提供的同樣。
Sea.js的本質意義是經過模塊化開發,來提升代碼的可維護性。對工程師而言,是關注度分離,更將更多精力聚焦在代碼自己的邏輯上。
Q:Sea.js的設計思想是什麼?是如何具體實現的?
A:Sea.js的核心設計思想是保持簡單。有兩層含義:
職責清晰是讓Sea.js的範疇明確,隨時知道本身應該作什麼,不該該作什麼。一個框架,最怕的是需求膨脹,最怕的是複雜化。
性能優先是由於Sea.js是底層加載器,假若性能很差,直接會影響頁面性能,所以源碼中有很多地方會刻意追求性能。
適度完備是從功能的層面看Sea.js的API是否能知足經常使用需求,同時又能經過插件機制對外提供適度的可擴展性。Sea.js不追求可以知足全部需求,而是追求2/8原則
seajs開源地址的地址:https://github.com/seajs/seaj