同樣做前端UI,為什么有人花了一點力氣,就可以做好?而有的人費盡全力,仍然錯誤百出?我們可以先看看幾個故事。
故事1:巧借力,烏鴉也可以吃核桃
有一個盛產(chǎn)核桃的村子,每年秋末冬初,成群的烏鴉總會來到這里,到果園里撿拾那些被果農(nóng)們遺落的核桃。
核桃仁雖然美味,但是外殼那么堅硬,烏鴉怎么才能吃到呢?原來烏鴉先把核桃叼起,然后飛到高高的樹枝上,再將核桃摔下去,核桃落到堅硬的地面上,被撞破了,于是,烏鴉就得到了那美味的核桃仁。
可是,讓核桃從高空墜落,核桃殼破裂的概率很低,很多時候,烏鴉都是望而興嘆。然而,失敗并未難倒烏鴉,不久后,它們又發(fā)明了一種更有效的方法:我們村子附近有一條環(huán)山公路,過往的車子很多。烏鴉把核桃摔在公路上,車輪很輕松地就軋碎了核桃。于是,烏鴉等車子過去后,就迅速落地,品嘗美食。
順天應人,懂得發(fā)現(xiàn)自身所處環(huán)境的特點,同時整合旁邊的優(yōu)質(zhì)資源,就能使自己事半功倍,烏鴉只是把核桃?guī)У焦飞隙眩湍茌p松享用核桃。借力,不僅僅只局限于人與人之間,也可以向環(huán)境“借”力。
故事二:借巧力,四兩撥千斤
英國大英圖書館,是世界上著名的圖書館,里面的藏書非常豐富。有一次,圖書館要搬家,也就是說從舊館要搬到新館去,結(jié)果一算,搬運費要幾百萬,根本就沒有這么多錢。怎么辦?有人給館長出了個注意。
圖書館在報上登了一個廣告:從即日開始,每個市民可以免費從大英圖書館借10本書。結(jié)果,許多市民蜂擁而至,沒幾天,就把圖書館的書借光了。書借出去了,怎么還呢?大家給我還到新館來。就這樣,圖書館借用大家的力量搬了一次家。
你肯定也想像大英圖書館那樣“四兩撥千斤”。如果你能發(fā)現(xiàn)自己的“四兩之力”(圖書),并且敢于把“四兩之力”用出去(免費借閱),一切就都不是問題。給予,有時也是一種借力。時代發(fā)展到今天,要想成功,最快速的辦法就是尋求成功者的幫助,并與對方齊心合力共同完成。完美的互援與合作永遠不能被忽視。成功,不在于你能做多少事,而在于你能借多少人的力去做多少事!
許多做前端的朋友往往在這方面有諸多疑慮,在選擇框架時,也會提出許多想法,比如:組件豐富些,自己不添加也足夠用;2.兼容性好一點,最好IE8以上都能兼容;擴展方便點,想增加就能增加;性能能好點,界面好看點,支持更換皮膚,支持窗口小組件,,支持流式布局……
其實,這些都不是問題,也不需要你一個一個去研究透!只是,在選擇適合自己的框架時,需要認真考慮一些因素:
其一,巧借力。比如,框架是否足夠受歡迎、持續(xù)發(fā)展,有豐富的文檔?越是受歡迎,說明使用的人越多,各種資源也就越多,可以交流的方式也就越多。被拋棄的幾率越小,你可以更加安心使用該框架。好的框架需要不斷更新改善,適應當前的各種技術(shù),尤其是移動端。如果,一個框架沒有在實際項目中實踐,你可以隨便拿來練手,但是,如果要用到專門的項目中,還是找比較成熟的框架靠譜。目前,Tiny前端框架,已經(jīng)有龐大的粉絲群體,越來越受到用戶的歡迎。在學習階段,一份完善的文檔可以幫助我們事半功倍。
其二,借巧力。相比一個特殊的框架,一個通用的框架可以讓開發(fā)更加簡單。尤其是,個性化程度如何?大多數(shù)情況下,選擇最小的樣式可以讓定制更簡便,添加新CSS比覆蓋原有樣式更加簡單易操作且更有效率。當然,如果你還是不太確定這框架是否適合自己,你可以從不同項目中找出一兩個組件放入自己的項目中。比如,TinyUI框架可以提供完整的主頁面框架;提供整頁切換和Ajax局部刷新的支持;提供豐富的菜單插入點;提供了多種皮膚;提供豐富的界面元素自定義;提供UI組件包的封裝;提供宏封裝,使用時不必關(guān)心具體實現(xiàn);提供流式布局,在手機端也有良好的展現(xiàn);能夠解決UI組件包之間的依賴關(guān)系;能夠解決CSS合并和JS合并及其壓縮方面的問題……如此合成,應該也是有幫助的。
以TinyUI為例,經(jīng)過多個版本的開發(fā),目前已經(jīng)基本完善。成熟的技術(shù),活躍的團隊,實際上就是在幫你巧借力、借巧力,分析一下演示地址:http://www.tinygroup.org/tinyuiweb/,可以很快找到適合自己的前端元素。如果需要進一步了解原理,還可以通過源碼倉庫,快速獲取相關(guān)代碼:http://git.oschina.net/tinyframework/TinyUiEnterprise。
還是那句話,巧借力、借巧力!參與,何嘗不是一種進步?
歡迎訪問開源技術(shù)社區(qū):http://bbs.tinygroup.org。本例涉及的代碼和框架資料,將會在社區(qū)分享。《自己動手寫框架》成員QQ群:228977971,一起動手,了解開源框架的奧秘!或點擊加入QQ群:http://jq.qq.com/?_wv=1027&k=d0myfX