❗ 本文最后更新于 4833 天前,文中所描述的信息可能已发生改变,请谨慎使用。
提醒:QWrap 框架已经停止维护多年,QWrap.com 域名已经失效,请不要点击。
围观过QWrap的同学可能会注意到其官方的特性介绍里有这么一条:
提供YUI2一样的静态方法库,同时又用所谓的Helper规范来做到真正的绝对静态,让组件开发者可以发布出无依赖的组件。
其中,组件无依赖化,也就是核心库定制这个特性,在某些场景下还是非常有用的。QWrap提供了相应的工具来实现,JK这篇文章有详细说明。只是这个工具藏得很深没多少人知道,好酒也怕巷子深~ 最近我在这个工具的基础上增加了代码选取的功能,一起再给大家介绍下。
首先,访问代码选取小工具页面。
第一步,选择要用到的方法。这一步比较好理解,例如要用到数组迭代就选中ArrayH下的forEach,需要格式化日期功能就选择DateH下的format,依此类推。特别的,Browser(浏览器UA相关)、Selector、CustEvent(自定义事件)这三个模块目前是不能拆分的,只能按模块选择,并不能细化到每个方法。
第二步,选择Retouch配置。了解过QWrap设计的同学应该知道,QWrap是通过不同Retouch配置来决定是否污染原型的。默认的Core Retouch,会执行以下操作:
mix(Object, QW.ObjectH);//给Object增加静态方法
mix(QW.ArrayH, QW.HashsetH);//将HashsetH合并到ArrayH
mix(Array, QW.ArrayH);//给Array增加静态方法
mix(Array.prototype, methodize(QW.ArrayH));//给Array增加原型方法
mix(QW.FunctionH, QW.ClassH);//将ClassH合并到FunctionH
mix(Function, QW.FunctionH);//给Function增加静态方法
mix(Date, QW.DateH);//给Date增加静态方法
mix(Date.prototype, methodize(QW.DateH));//给Date增加原型方法
mix(String, QW.StringH);//给String增加静态方法
mix(String.prototype, methodize(QW.StringH));//给String增加原型方法
在这一步,如果选中了Core Retouch,最终代码会根据你选择的模块,选择性的把上面那些Retouch添加到最后。
第三步,提取方法。这一步也很简单,点击按钮就会根据第一步的选择、第二步的配置生成方法list。这个list是给第四步抽取代码用的,也可以存起来以后再用。
第四步,获取最终代码。这一步更简单了,点一下按钮就大功告成,自己体验下吧~
到这里,QWrap的无依赖化定制就完成了。通过简单的四步,就能得到独一无二的QWrap核心库。
特别的,如果基于QWrap开发组件,且全部使用QWrap的静态方法,那这个组件也可以方便的Solo了——把组件用到的所有静态方法贴到第三步的文本框里,获取基于这个组件的定制化核心库,搞定!
本文链接:https://imququ.com/post/qwrap-customization.html,参与评论 »
--EOF--
发表于 2011-09-28 11:50:04,并被添加「QWrap」标签。查看本文 Markdown 版本 »
Comments
Waline 评论加载中...