kissy 是淘宝一个开源的 JavaScript 库,包含的组件有:日历、图片放大镜、卡片切换、弹出窗口、输入建议等
距离 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