BUI入门系列-Kissy的适配器

为什么支持Kissy

image.png
  • 首先我们面临的业务环境,有大量的系统使用了Kissy,而且Kissy缺少一套成体系的富客户端控件,应大量开发者的需求,我们做了Kissy的支持。
  • 我们开发BUI过程中使用的是jQuery,由于从Kissy与jQuery在核心库方面非常类似,适配的成本很低,loader方面跟seajs又是一脉相承等原因所以我们选择支持Kissy。

适配了那些内容

Kissy和jQuery在核心库上的差异在于

  1. kissy缺少一些jquery的工具方法,如:contains,extend,parseJSON,noop等方法
  2. kissy与jquery的方法的参数或者函数含义有所差异,如:each ,map,inArray 等方法
  3. Kissy的NodeList对象与jQuery对象的适配,缺少的函数和参数不一致的函数
  4. Kissy的loader适配兼容seajs的语法

在项目实践过程中发现,kissy的适配取得了很好的成果,未发现有不能适配的场景,控件的表现完全一致。使用方式也非常自然,具体实现可参看github上的源码

兼容kissy的控件开发

在开发BUI控件的过程中,可以完全按照jquery的语法,不必考虑kissy的语法,但是有以下方面需要注意:

  • 选择器:仅使用简单选择器,不使用复杂选择器。kissy默认不支持复杂选择器,需要引入sizzle模块;复杂选择器的效率没有简单选择器高。
  • 事件注册:目前只适配了on,off,delegate等函数,click(),change()之类的事件监听语法,kissy未作支持。
  • jquery新版本(>1.8)所增加的函数,并未做兼容。

虽然很多jquery的函数未做支持,但是目前的使用来看,足够满足应用的需求,您在开发BUI控件时,如果有Kissy的兼容性需求得不到满足,联系我们,并提出需要兼容的函数

你可能感兴趣的:(BUI入门系列-Kissy的适配器)