KISSY 1.3.0 發布,淘寶開源 JS 類庫
KISSY 是由淘寶前端攻城師們發起創建的一個開源 JS 類庫。
她遵循的原則是 小巧靈活、簡潔實用、愉悅編碼、快樂開發。
距離 KISSY 1.2.0 發布已過一年,自 KISSY 1.3rc 發布后, 1.3 又繼續經歷了即將發布的店鋪系統,搜索系統,商品詳情系統的錘煉,并做了必要的調整和優化。今天終于可以高興地宣布: KISSY 1.3.0 正式版發布了。你可以通過淘寶 cdn 在線引用(推薦)或者直接從 github 下載 或者使用 npm 安裝. 官網文檔也進行了相應更新,覆蓋了 1.3 涉及到的新特性以及修改,請清除緩存后訪問 KISSY 1.3 文檔首頁.
下面簡單介紹下 1.3.0 相對于 1.2.0 的新特性與不兼容之處,也可查看 發布 ppt 介紹.
新特性
前提
-
不要靜態引入 KISSY 模塊文件,例如
<script src='http://a.tbcdn.cn/s/kissy/1.3.0/overlay.js'></script>
-
推薦只靜態引入 seed-min.js,通過 use require 使用其他模塊,另外:
- 盡量少 use
- 線上設置 combo 模式(需要服務器支持 combo )
穩定性提升
- 使用 phantomjs travis nodejs 來支持 KISSY 的持續集成。
- 單元測試覆蓋率提升,目測 80% 左右,后面需精確統計.
協作效率提升
- package 機制支持多個業務間的無縫協作
- combo 模式支持每個業務耗費最小的鏈接數,后面會繼續優化業務間的鏈接數
- 內置 gallery package,更容易的通用模塊共享機制,引用 cdn 版本直接 use('gallery/xx') 即可。
開發更便捷
- 線上 combo 模式與開發階段匿名模塊的無縫切換
- 組件加強了一致性
- 對外 api: new/render/plugin/listeners
- 生命周期事件: afterRenderUI/afterBindUI/destroy/show/hide
- 組件即模塊, use/require 按需使用
-
組件通過 json 初始化達到更好的易用性
new Menu({ children:[{ content:'menuitem' }], plugins:[], listeners:[] }); new Tree({ content:'root', children:[{ content:'node' }] });
- KISSY 新的英文 api 文檔
性能與可訪問性
-
移動支持
-
性能
- 部分模塊選擇性加載,例如 ie 的兼容性模塊( json2/event hashchange/dom ie… )不會被標準瀏覽器加載
- 通過延遲初始化,提高了層級組件的性能.
不兼容處
-
刪除了 KISSY.app 方法,移除了 csspath/cssfullpath/path/fullpath 配置,請使用 1.3 推薦的 模塊化機制 .
-
KISSY.add(name, fn), fn 只有在 use 或者 require name 時執行。請需要對應模塊功能時要 use 或者 require
-
suggest/template/flash/validation 移到了 gallery。 使用的話請修改模塊名字:gallery/suggest/1.0/,gallery/template/1.0/,gallery/validation/1.0/,gallery/flash/1.0/.
-
dd 的代理和監控滾動功能獨立為單獨的模塊:dd/pplugin/proxy,dd/plugin/scroll, 使用方式也改為統一的插件 api:
new Draggable().plug(new ProxyPlugin()) // or new Draggable({ plugins: [new ProxyPlugin()] })
-
overlay 的 resize 和 draggable 功能也獨立為單獨的模塊:component/plugin/drag,component/plugin/resize, 使用方式也改為統一的插件 api:
new Overlay().plug(new DragPlugin()); // or new Overlay({ plugins:[new DragPlugin()] });
-
editor 重構
- 使用統一的組件 api 與模塊化機制
詳細 changelog
詳細 changelog 可到文檔頁面具體查看。
1.3 修復的 bug 可到 github issues 里查閱.
next -> 1.4
下個版本中初步規劃在兩個方面完善:
-
基礎架構
- test coverage
- ie 持續集成探索??
- 鏈接數繼續優化
- 快速的 build 機制探索
-
基礎組件
- date/datasource/graphic
- 無縫加載的 css 選擇器
- data-picker
- color-picker
- switchable 重構
- grid??
具體 roadmap 有興趣可關注 github
感謝
在此,感謝曾經幫助過或現在仍然在持續推動 KISSY 發展的人們,希望 KISSY 能幫助更多普通的中國前端工程師。
特別感謝以下人員的工作:
- 服務線團隊對 KISSY 1.3 的首先嘗試:常胤,玉門,七念,云休,棪木,清羽。
- KISSY Gallery 虛擬團隊對 KISSY 組件化的無私貢獻:劍平,常胤,翰文,玉門,七念,林謙,紫英,張挺,牧云,易斂,伯方,流火,元泉,基德。
- etao 兄弟團隊對 KISSY 的不懈支持:李牧,左莫,基德,龍笛,逸才,雨異,云聰,阿大
- KISSY PIE 工具團隊對基于 KISSY 開發效率的大幅提升:文龍,紫英,遇春,張挺,劍平
- 年底升級項目團隊包括 tmall 兄弟團隊對 KISSY 的理解與寬容:游俠,水兒,石霸,霸先,大遒,漸飛,文龍,釋然,鳳尋,三七
還有更多在日常工作中幫助過 KISSY 完善的工程師們:
阿克,道璘,地極,董曉慶,額臺,方元,飛長,妙凈,鳴弦,墨鋒,蘇河,鐵軍,亞城,隱若,影風,元晃,緣滅,云謙,展炎,展燁,龍欣,龍剛,拔赤 …
以及玉伯,小馬,圓心對 KISSY 一如既往的支持.