为什么支持Kissy
- 首先我们面临的业务环境,有大量的系统使用了Kissy,而且Kissy缺少一套成体系的富客户端控件,应大量开发者的需求,我们做了Kissy的支持。
- 我们开发BUI过程中使用的是jQuery,由于从Kissy与jQuery在核心库方面非常类似,适配的成本很低,loader方面跟seajs又是一脉相承等原因所以我们选择支持Kissy。
适配了那些内容
Kissy和jQuery在核心库上的差异在于
- kissy缺少一些jquery的工具方法,如:contains,extend,parseJSON,noop等方法
- kissy与jquery的方法的参数或者函数含义有所差异,如:each ,map,inArray 等方法
- Kissy的NodeList对象与jQuery对象的适配,缺少的函数和参数不一致的函数
- Kissy的loader适配兼容seajs的语法
在项目实践过程中发现,kissy的适配取得了很好的成果,未发现有不能适配的场景,控件的表现完全一致。使用方式也非常自然,具体实现可参看github上的源码
兼容kissy的控件开发
在开发BUI控件的过程中,可以完全按照jquery的语法,不必考虑kissy的语法,但是有以下方面需要注意:
- 选择器:仅使用简单选择器,不使用复杂选择器。kissy默认不支持复杂选择器,需要引入
sizzle
模块;复杂选择器的效率没有简单选择器高。 - 事件注册:目前只适配了on,off,delegate等函数,click(),change()之类的事件监听语法,kissy未作支持。
- jquery新版本(>1.8)所增加的函数,并未做兼容。
虽然很多jquery的函数未做支持,但是目前的使用来看,足够满足应用的需求,您在开发BUI控件时,如果有Kissy的兼容性需求得不到满足,联系我们,并提出需要兼容的函数