QWrap入門之Youa版應用
就像是一棵樹有很多果實一樣,QWrap也有很多apps,本文講解"QWrap的Youa版應用",即apps/core_dom_youa.js。
Youa是QWrap的***個真正全面使用QWrap的項目,apps/core_dom_youa.js中同時包含core、dom、youa三種retouch,在介紹Retouch機制時已經對他們分別作過介紹,他們同時起作用的結果就是:我們只引入一個js,就可以 :
像prototype一樣這樣寫:
- new Date().format();
像jQuery一樣,這樣寫:
- W('#aaa a.aaa').click(fun).css('color','red');
- W('body').css('color','black').query('>h1').color('red');
還可以像YUI3一樣這樣寫:
- use('Drag,Valid',function(){alert([Drag,Valid]);});
當然,也可以像YUI2一樣用靜態方法(當然,我們不推薦YUI2這種用法):
- Dom.setStyle(el,'color','red');
前面講的兩個應用一樣,apps/core_dom_youa.js也是一個復合文件,它含以下文件:
- document.write('<script type="text/javascript" src="' + srcPath + 'core/core_base.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/module.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/browser.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/string.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/object.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/array.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/hashset.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/date.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/function.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/class.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/helper.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/custevent.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/custevent_retouch.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'dom/selector.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'dom/dom.u.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'dom/node.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'dom/node.w.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'dom/event.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'dom/event.w.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'dom/eventtarget.h.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'dom/jss.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'dom/node.c.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'core/core_retouch.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'dom/dom_retouch.js"><\/script>');
- document.write('<script type="text/javascript" src="' + srcPath + 'apps/youa_retouch.js"><\/script>');
事實上,還包括apps/youa_modules_config.js,不過由于組件這一塊還沒有放出來,所以先忽略掉。。。
發布時會將各個分文件合并起來,內容如:apps/core_dom_youa.js(http://dev.qwrap.com/resource/js/_docs/_jk/js/apps/core_dom_youa.js)
這個文件經YUI壓縮后大小為48K,gzip后大小為17K。可以獨立使用。
在有啊的項目開發中,只需要使用一個QWrap庫就可以了,之前由注釋生成的文檔主要只是Helper方法的基本用法,那些并不是頁面編碼的同學希望使用的。所以,制作一個真正給頁面編碼同學使用的文檔,一直是一個迫切的需求。關于這個文檔,一直覺得是體力活,一直寄望有新同學或外包給別人來寫,拖延了很久,最終還是認為自己動手來寫更切實際。2010年底,培培同學幫忙寫好css與html結構,2010年十二月到2011年一月,花了一個月左右的時間,來完成這個體力活(還有好奇參與),雖說有很多不足,好在幾乎能夠滿足同學們的需求了。----整理文檔時,也趁機人肉測試了很多單元測試中未出現的case,也找到了不少足子,還是挺值得的,慶幸沒有外包給別人來寫文檔。
正如曾在retouch小結里所講過的,retouch后的QWrap的用法很多,只能列出一些推薦的用法,免得列得太多反而讓人混淆。這份文檔在這里可以看到:
http://dev.qwrap.com/resource/js/_docs/_jk/
因為做得不夠專業,所以臨時還是以“_jk”為目錄名,等專業版本出來后再改名吧。
有了這份文檔,就不用詳細介紹各種用法了,看一下就明白。
有幾點需要說明一下:
1. 各種Helper,在實際中并不使用。使用的都是經過變換的方法,那些變換的方法即是retouch的產物。
2. 每一個方法的使用文檔里,都會有說明是它經過什么變換得來的,例如,w.addClass是"本方法是由QW.NodeH.addClass經“mul”、“methodize”變換得到",點擊一下就可以看到原方法。
3. 所有方法都是QWrap的方法,與其它庫的方法參數有可能不一致,大部分有QWrap自己的考量,如果同學覺得不合理可以反饋一下,方便我們改進。
4. 有啊項目之所以能只用QWrap而不用其它框架,還有一個原因是:QWrap有自己的一系列常用組件。。。這個將會在以后介紹組件時講到。
5. 為什么沒有Ajax與動畫?----因為它們被降級到組件級別了。
原文:http://www.cnblogs.com/jkisjk/archive/2011/04/22/qwrap_apps_core_dom_youa.html
【編輯推薦】