abstract:jqueryUI不好用, 該落伍, 我不知道這個(gè)論點(diǎn)是如何出現(xiàn)的, 但是我敢說(shuō)執(zhí)有這個(gè)觀點(diǎn)的, 50%的人沒(méi)用過(guò), 40%的人只是把jqueryUI當(dāng)做現(xiàn)成的純UI庫(kù)來(lái)使用, 只有剩下的10%是研究透了jqueryUI最后因業(yè)務(wù)的需要投身于新一代框架麾下的.因?yàn)樵谀銢](méi)見過(guò)的地方, jqueryUI以你未曾想過(guò)的形態(tài)做了很多不可思議的東西.舉幾個(gè)適用場(chǎng)景: 網(wǎng)站方面: 大部分開發(fā)流程還是h
jqueryUI不好用, 該落伍, 我不知道這個(gè)論點(diǎn)是如何出現(xiàn)的,
但是我敢說(shuō)執(zhí)有這個(gè)觀點(diǎn)的, 50%的人沒(méi)用過(guò), 40%的人只是把jqueryUI當(dāng)做現(xiàn)成的純UI庫(kù)來(lái)使用, 只有剩下的10%是研究透了jqueryUI最后因業(yè)務(wù)的需要投身于新一代框架麾下的.
因?yàn)樵谀銢](méi)見過(guò)的地方, jqueryUI以你未曾想過(guò)的形態(tài)做了很多不可思議的東西.
舉幾個(gè)適用場(chǎng)景:
網(wǎng)站方面: 大部分開發(fā)流程還是html+css+js的傳統(tǒng)一套, 在這個(gè)層面上所有框架一視同仁, 純jquery手?jǐn)]的效率已經(jīng)足夠快了, jqueryUI作為輔助UI組件, 雖然樣式比起bootstrap是要low點(diǎn), 但凡設(shè)計(jì)有點(diǎn)想法, 最后樣式不都是要統(tǒng)一覆蓋重寫么.
小型應(yīng)用: 也可以理解為簡(jiǎn)單組件, 基本沒(méi)有比jqueryUI快的, 這是人家的老本行, jqueryUI本來(lái)就是個(gè)UI庫(kù), 所有默認(rèn)組件最終都是繼承自Widget基類, widget組件的數(shù)據(jù)與ui交互方式都可以歸結(jié)為三種: 設(shè)定初始o(jì)ptions; 修改options; 通過(guò)options修改view. 本質(zhì)上就是數(shù)據(jù)單向綁定,
在此基礎(chǔ)上約定規(guī)則, 可以構(gòu)造出新的優(yōu)秀特性.
也因此jqueryUI得天獨(dú)厚, 只需引入核心文件widget就能在jquery環(huán)境下構(gòu)建任何應(yīng)用.
此環(huán)境下它絕對(duì)是開發(fā)速度最快的前端庫(kù)之一.
大型應(yīng)用: 這是jqueryUI真正的短板, 因?yàn)榻M件庫(kù)的設(shè)計(jì)只到了組件這層, 更高更抽象的框架層面, jqueryUI根本沒(méi)有去涉及,
但是并不是說(shuō)沒(méi)有辦法構(gòu)建巨型web應(yīng)用,
以jqueryUI為框架選型的應(yīng)用, 需要實(shí)現(xiàn)應(yīng)用的高度抽象, 從高層的組件里調(diào)用底層的組件, 并通過(guò)回調(diào)等方式來(lái)實(shí)現(xiàn)低層數(shù)據(jù)反饋回高層.
比方我們做一個(gè)編輯器, 場(chǎng)景有許多鍵值, 其中一項(xiàng)鍵值需要在某個(gè)dialog里編輯, 那么我們?cè)趫?chǎng)景層調(diào)用dialog彈窗時(shí), 給options傳入一個(gè)callback, 當(dāng)彈窗編輯完畢, 再將綁定在dialog上的數(shù)據(jù)通過(guò)callback傳遞回場(chǎng)景組件就實(shí)現(xiàn)了組件通信.
即是, 如果能力足夠強(qiáng), 你可以用組件構(gòu)造的方式層層堆疊實(shí)現(xiàn)一個(gè)巨型web單頁(yè)應(yīng)用.
就我目前的經(jīng)驗(yàn)來(lái)看, 幾十萬(wàn)行還不是上限.
但這幾十萬(wàn)行的代碼, 已經(jīng)極其難維護(hù)了.
widget組件嵌套, 調(diào)用棧過(guò)深, 到處充斥著難以摸清意義的callback,
讓維護(hù)者舉步維艱,
所以說(shuō),
jqueryUI的問(wèn)題只在于大型應(yīng)用的可維護(hù)性上,
他雖然將jquery的從單純的dom操作上擴(kuò)展到ui組件層面,
但是卻始終沒(méi)有達(dá)到應(yīng)用框架的層次, 這也是jquery的真正短板.
但是如果不能理解其真正癥結(jié), 只是跟風(fēng)覺得落伍, 拋出樣式老土太丑的觀點(diǎn)的,
我只能理解為你根本沒(méi)理解jqueryUI到底是什么..