QWrap简介之:apps果实篇之:纯净core+dom
2011-04-26 19:46
162 查看
就像是一棵树有很多果实一样,QWrap也有很多apps,本文讲解"纯净core+dom"的应用,即apps/core_dom_pure.js。
对应的帮助文档在这里:http://dev.qwrap.com/resource/js/_docs/_jsdoc_temp/(文档生成工具由Remember2015同学提供,特别感谢!)。
本应用面向的用户是:组件开发者。
对于组件开发者来说,有时会面临一种两难的选择:
A:依赖某库。这样开发简单,但是使用有局限,需要用户在所在页面引用依赖库。
B:无依赖开发。这样开发出来的组件是无依赖的,但是开发成本比较大,需要自己处理兼容等问题,并且如果用户已有某库,会造成公用代码的流量浪费。
用过YUI2或Tangram的同学可能会知道,还有第三种选择:
C:开发时依赖某库,发布时可以发布出无依赖的组件。
YUI2与Tangram都提供了一系列的静态方法,在开发时,只使用静态方法;在发布时,将所需的静态方法复制出来即可成为无依赖的形式。
QWrap在retouch之前,也是一个大的静态库,提供一系列的静态方法库。所以也能做到C选择。
另外,QWrap还提供了一个无依赖化的工具:用户可以引用apps/core_dom_pure.js,来开发自己的组件,开发完成后,将自己的代码复制到以下页面的“硬性代码”框中,点击“抽取”,就可以获取到一个瘦身后的QWrap了。
http://dev.qwrap.com/resource/js/_tools/combojsfiles/_examples/Solo.html
自动瘦身对于retouch性质的代码会保留,所以自动瘦身后的代码,还可以人工去掉一些不必要功能,进行二次或多次瘦身。
瘦身后的代码复制到自己组件代码的前面,这个组件就是无依赖的了。
顺带说点,个人喜欢在写组件时,先把组件对库的依赖定义在一起,相当于一个组件与库的适配,这样,也可以很容易的将自己的组件适配成依赖项目所使用的库的依赖版,以js库已经提供了的代码。
例如,combobox组件中,适配的代码如下:
View Code
详情请参考《无依赖的combobox组件(autocomplete组件)》,在写那一篇文章时,还没有这个solo工具,所以略有差别,不再详述。
附:QWrap博客地址:http://www.qwrap.com
对应的帮助文档在这里:http://dev.qwrap.com/resource/js/_docs/_jsdoc_temp/(文档生成工具由Remember2015同学提供,特别感谢!)。
本应用面向的用户是:组件开发者。
对于组件开发者来说,有时会面临一种两难的选择:
A:依赖某库。这样开发简单,但是使用有局限,需要用户在所在页面引用依赖库。
B:无依赖开发。这样开发出来的组件是无依赖的,但是开发成本比较大,需要自己处理兼容等问题,并且如果用户已有某库,会造成公用代码的流量浪费。
用过YUI2或Tangram的同学可能会知道,还有第三种选择:
C:开发时依赖某库,发布时可以发布出无依赖的组件。
YUI2与Tangram都提供了一系列的静态方法,在开发时,只使用静态方法;在发布时,将所需的静态方法复制出来即可成为无依赖的形式。
QWrap在retouch之前,也是一个大的静态库,提供一系列的静态方法库。所以也能做到C选择。
另外,QWrap还提供了一个无依赖化的工具:用户可以引用apps/core_dom_pure.js,来开发自己的组件,开发完成后,将自己的代码复制到以下页面的“硬性代码”框中,点击“抽取”,就可以获取到一个瘦身后的QWrap了。
http://dev.qwrap.com/resource/js/_tools/combojsfiles/_examples/Solo.html
自动瘦身对于retouch性质的代码会保留,所以自动瘦身后的代码,还可以人工去掉一些不必要功能,进行二次或多次瘦身。
瘦身后的代码复制到自己组件代码的前面,这个组件就是无依赖的了。
顺带说点,个人喜欢在写组件时,先把组件对库的依赖定义在一起,相当于一个组件与库的适配,这样,也可以很容易的将自己的组件适配成依赖项目所使用的库的依赖版,以js库已经提供了的代码。
例如,combobox组件中,适配的代码如下:
View Code
var mix = QW.ObjectH.mix, DomU = QW.DomU, createElement = DomU.createElement, EventH = QW.EventH, target = EventH.getTarget, keyCode = EventH.getKeyCode, preventDefault = EventH.preventDefault, CustEvent = QW.CustEvent, NodeH = QW.NodeH, addClass = NodeH.addClass, removeClass = NodeH.removeClass, setStyle = NodeH.setStyle, getXY = NodeH.getXY, ancestorNode = NodeH.ancestorNode, on = QW.EventTargetH.addEventListener, ...
详情请参考《无依赖的combobox组件(autocomplete组件)》,在写那一篇文章时,还没有这个solo工具,所以略有差别,不再详述。
附:QWrap博客地址:http://www.qwrap.com
相关文章推荐
- QWrap简介之:apps果实篇之:小结
- QWrap简介之:apps果实篇之:Youa版应用
- QWrap简介之:Apps 应用--- 收获果实
- QWrap简介之:apps果实篇之:扩展JS原生类
- QWrap简介之:apps果实篇之:定制
- QWrap简介之:apps果实篇之:种子
- QWrap简介之:core_retouch ---渲染原生类
- QWrap简介之:dom_retouch --- NodeW 勇士装甲
- javascript学习六~BOM和DOM简介,window,screen,navigator,location,history,节点增删改查
- MicroService.Core简易微服务框架《一、简介》
- CoreData入门简介
- 对象模型文档对象模型DOM简介
- DOM技术简介之二_事件+属性+方法
- QWrap简介之:梦想、使命、目标
- QWrap简介之:瘦主干
- Xcode8后coreData的使用简介
- Ext.core.DomQuery Dom选择器
- DOM技术简介之一_什么是DOM
- HTML DOM教程 2-DOM简介
- Xamarin开发Android 6.0(Marshmallow)apps简介