KISSY 1.3.0 发布,淘宝开源 JS 类库

jopen 11年前

KISSY 是由淘宝前端攻城师们发起创建的一个开源 JS 类库。

她遵循的原则是 小巧灵活、简洁实用、愉悦编码、快乐开发。

KISSY 1.3.0 发布,淘宝开源 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'      }]  });
  • 增加新的模块:promise,uri,stylesheet,combobox,color,swf,xtemplate

  • KISSY 新的英文 api 文档

性能与可访问性

  • 移动支持

    • 所有模块按照设备能力按需加载
    • 线上启用 combo 模式减少链接数
    • 支持手势事件 pinch/rotate/tap ....
    • 大部分组件支持触屏下使用
  • 性能

    • 部分模块选择性加载,例如 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 一如既往的支持.