QWrap简介之:apps果实篇之: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一样这样写:
像jquery一样,这样写:
还可以像YUI3一样这样写:
当然,也可以像YUI2一样用静态方法(当然,我们不推荐YUI2这种用法):
前面讲的两个应用一样,apps/core_dom_youa.js也是一个复合文件,它含以下文件:
事实上,还包括apps/youa_modules_config.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与动画?----因为它们被降级到组件级别了。
附:QWrap博客网址:http://www.qwrap.com
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也是一个复合文件,它含以下文件:
View Code
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
这个文件经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与动画?----因为它们被降级到组件级别了。
附:QWrap博客网址:http://www.qwrap.com