extjs精通高级编程.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
extjs精通高级编程

Extjs扩展组件 constructor: 构造方法 :Panel.superclass.constructor.apply(this, arguments); * PS:call, apply方法区别是,从第二个参数起, call方法参数将依次传递给借用的方法作参数, 而apply直接将这些参数放到一个数组中再传递, 最后借用方法的参数列表是一样的.(callback.call(scope, result, options, true);) 说明:constructor 是整个组件生成的主要逻辑,组件的生成过程如下: Widget生成过程图 二、data封装 主要涉及到的有session、sessionProxy、dataObj,整个数据是一棵json树,所以我们要操作的其实只是data的父节点,用父节点操作它的所有的儿子节点,每类儿子节点封装成dataObj,继续操作它的儿子节点,如此往复。 儿子节点在父节点的dataObj里面被封装成children(是MixedCollection类型): var children = new Ext.util.MixedCollection(false, function(o) { if(o o.code) { o = new net.autodata.data.regions.Country(o); return o.code; } }); 父节点通过MixedCollection提供的方便性实现对子节点的操作: var mc = children.filterBy(function(o) { return o.selected === true; }); 如果dataObj需要绑定事件,必须继承自Observable: var _events = new Ext.util.Observable(); if (cfg.listeners) { _events.on(cfg.listeners); } return Ext.apply(_events, {..}) 然后用children代替原来的儿子类型: countries: children . 最后将增加的方法apply到父节点的json上 . 主要的数据都从页面的session变量得到通过 : ASC.session. SessionProxy主要实现doRequest()方法. 事件触发机制: 事件触发,其实等于是调用注册的方法;跟直接调用方法的区别有: 可以动态增加处理逻辑,不用修改方法原代码。而如果直接调用方法,如果需要继续增加逻辑,则必须修改方法代码。 易于重用方法代码,一个方法可以交叉注册不同的事件。直接调用则不具备这样的功能,相同逻辑的实现,必须手工拷贝代码。 插拔式开发。不会影响到以前的逻辑,可以随时插入逻辑方法,也可以随时卸载所插入的逻辑方法。而直接调用根本做不到,稍微不同的逻辑甚至需要写不同的方法。 插件机制: 在component的constructor方法里面调用,先于render方法,任???继承自component的widget都可以编写plugins,plugin的执行顺序按加入的顺序而定。plugin入口的通过plugin的init方法进入的,其中唯一参数引用是widget自己,所以本质上来说,可以在plugin里面对widget进行任何操作。但是跟直接将代码写在widget里面有诸多好处,主要有: 自由定制,可以在plugin里面给widget增加需要的方法,主要是一些特殊需求的功能,这样可以定制个性化widget。不需要把所有用到的方法都放到widget里,增加不必要的开销。 插拔式开发,可以根据具体情况插入多个需要的plugin,也可以根据情况卸载不需要的plugin。针对不同的业务,组合出不同的widget,是一种组装模式。 提供代码的重用性,同一个plugin可以用于多个widget,一个widget也可以定制多个plugin,真正的实现组件间的组装开发。 Widget是一副骨架,plugin是血和肉;widget是一辆车,plugin是其中的零件… PS:但是widget跟plugin是有主次关系的,尽管widget里面的东西全部都可以写在plugin里面,plugin里面的东西也全部可以写在widget里面,但是在开发过程中,应该有一些常识: 只有个性化的事件才在plugin里面绑定,通的用事件不应写在plugin里面。 只有个性化的方法才

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档