sea.js

目標:1.瞭解目前公司所用得sea.js,代碼模塊式開發。javascript

2.比較目前比較流行得bootstrap,angularJS,reactJS框架。

參考:http://seajs.org/docs/#docs
1)除了解決命名衝突和依賴管理,使用 Sea.js 進行模塊化開發還能夠帶來不少好處:
1.模塊的版本管理。經過別名等配置,配合構建工具,能夠比較輕鬆地實現模塊的版本管理。html

2.提升可維護性。模塊化可讓每一個文件的職責單一,很是有利於代碼的維護。Sea.js 還提供了 nocache、debug 等插件,擁有在線調試等功能,能比較明顯地提高效率。前端

3.前端性能優化。Sea.js 經過異步加載模塊,這對頁面性能很是有益。Sea.js 還提供了 combo、flush 等插件,配合服務端,能夠很好地對頁面性能進行調優。java

4.跨環境共享模塊。CMD 模塊定義規範與 Node.js 的模塊規範很是相近。經過 Sea.js 的 Node.js 版本,能夠很方便實現模塊的跨服務器和瀏覽器共享。react

前端的模塊化構建可分爲兩大類。一類是以 Dojo、YUI三、國內的 KISSY 等類庫爲表明的大教堂模式。在大教堂模式下,全部組件都是顆粒化、模塊化的,各組件之間層層分級、環環相扣。另外一類是以 jQuery、RequireJS、國內的 Sea.js、OzJS 等類庫爲基礎的集市模式。在集市模式下,全部組件彼此獨立、職責單一,各組件經過組合鬆耦合在一塊兒,協同完成開發。git

AngularJs:開源得javascript框架,適合於開發客戶端得單頁面應用,它實現了前端MVC架構,專一於擴展html功能,提供動態技術綁定,且能與其餘框架合做融洽。(大概有個概念,從此再詳細瞭解)github

API 快速參考
1)seajs.config 用來對 Sea.js 進行配置。
https://github.com/seajs/seajs/issues/262
2)seajs.use 用來在頁面中加載一個或多個模塊。
https://github.com/seajs/seajs/issues/260
3)define 用來定義模塊。Sea.js 推崇一個模塊一個文件,遵循統一的寫法:
https://github.com/seajs/seajs/issues/242
https://github.com/seajs/seajs/issues/259
4)require 用來獲取指定模塊的接口
https://github.com/seajs/seajs/issues/242
https://github.com/seajs/seajs/issues/259
5)require.async 用來在模塊內部異步加載一個或多個模塊。
https://github.com/seajs/seajs/issues/242
6)exports 用來在模塊內部對外提供接口。
https://github.com/seajs/seajs/issues/242
7)module.exports 用來在模塊內部對外提供接口。
https://github.com/seajs/seajs/issues/242bootstrap

深度探討:
一.CMD 模塊得構建過程
CMD模塊在構建時,有兩個基本操做:
1.提取操做,用來提取模塊得標識id和一來dependencies.瀏覽器

a.js

define(function(require, exports) {
  var b = require('./b');
})
通過提取操做後,a.js 的源碼會轉換成臨時文件:

define('xxx/1.0.0/a', ['./b'], function(require, exports) {
  var b = require('./b');
})

2.壓縮操做。通過上面得提取操做後,構建工具就能夠調用任何JS壓縮工具來進行壓縮了,require 參數也能夠被壓縮成任意字符。性能優化

相關文章
相關標籤/搜索