zoukankan      html  css  js  c++  java
  • QWrap简介之:apps果实篇之:纯净core+dom

    就像是一棵树有很多果实一样,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
    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

  • 相关阅读:
    python爬虫headers设置后无效解决方案
    idea建立web项目servlet映射的地址/jsp访问不到
    bootstrap栅格系统错位问题
    python2 python3共存解决方案
    Springboot+Thymeleaf框架的button错误
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
  • 原文地址:https://www.cnblogs.com/jkisjk/p/qwrap_apps_core_dom_pure.html
Copyright © 2011-2022 走看看