為什么支持Kissy
image.png
- 首先我們面臨的業(yè)務(wù)環(huán)境域滥,有大量的系統(tǒng)使用了Kissy罚渐,而且Kissy缺少一套成體系的富客戶端控件唇辨,應(yīng)大量開(kāi)發(fā)者的需求,我們做了Kissy的支持锉罐。
- 我們開(kāi)發(fā)BUI過(guò)程中使用的是jQuery帆竹,由于從Kissy與jQuery在核心庫(kù)方面非常類似,適配的成本很低脓规,loader方面跟seajs又是一脈相承等原因所以我們選擇支持Kissy栽连。
適配了那些內(nèi)容
Kissy和jQuery在核心庫(kù)上的差異在于
- kissy缺少一些jquery的工具方法,如:contains,extend,parseJSON,noop等方法
- kissy與jquery的方法的參數(shù)或者函數(shù)含義有所差異侨舆,如:each ,map,inArray 等方法
- Kissy的NodeList對(duì)象與jQuery對(duì)象的適配秒紧,缺少的函數(shù)和參數(shù)不一致的函數(shù)
- Kissy的loader適配兼容seajs的語(yǔ)法
在項(xiàng)目實(shí)踐過(guò)程中發(fā)現(xiàn)舷暮,kissy的適配取得了很好的成果,未發(fā)現(xiàn)有不能適配的場(chǎng)景噩茄,控件的表現(xiàn)完全一致下面。使用方式也非常自然,具體實(shí)現(xiàn)可參看github上的源碼
兼容kissy的控件開(kāi)發(fā)
在開(kāi)發(fā)BUI控件的過(guò)程中绩聘,可以完全按照jquery的語(yǔ)法沥割,不必考慮kissy的語(yǔ)法,但是有以下方面需要注意:
- 選擇器:僅使用簡(jiǎn)單選擇器凿菩,不使用復(fù)雜選擇器机杜。kissy默認(rèn)不支持復(fù)雜選擇器,需要引入
sizzle
模塊衅谷;復(fù)雜選擇器的效率沒(méi)有簡(jiǎn)單選擇器高椒拗。 - 事件注冊(cè):目前只適配了on,off,delegate等函數(shù),click(),change()之類的事件監(jiān)聽(tīng)語(yǔ)法获黔,kissy未作支持蚀苛。
- jquery新版本(>1.8)所增加的函數(shù),并未做兼容玷氏。
雖然很多jquery的函數(shù)未做支持堵未,但是目前的使用來(lái)看,足夠滿足應(yīng)用的需求盏触,您在開(kāi)發(fā)BUI控件時(shí)渗蟹,如果有Kissy的兼容性需求得不到滿足,聯(lián)系我們赞辩,并提出需要兼容的函數(shù)