差沙的密碼 -- SSHWSFC's code
          閱讀本Blog請(qǐng)自備塑料袋一只
          posts - 14,  comments - 59,  trackbacks - 0
          相信大家看了Ext2.0后, 印象最深的應(yīng)該是Ext的組件模式,很好的規(guī)范了組件設(shè)計(jì),用Manager的統(tǒng)一管理,也是很好的方式.下面簡(jiǎn)單分析一下Ext的組件結(jié)構(gòu).

          Ext的所有組件都是擴(kuò)展于Ext.Component, 而后子類擴(kuò)展和集成形成了一個(gè)單根的組件樹.
          Ext中使用組件的方式很不一樣,可以看一個(gè)例子.

             1.  var formPanel = new Ext.form.FormPanel({
             
          2. items: [{
             
          3. xtype: 'hidden',
             
          4. name: 'domainId'
             
          5. },{
             
          6. fieldLabel: '姓名',
             
          7. name: 'name',
             
          8. allowBlank:false
             
          9. },{
            
          10. fieldLabel: '權(quán)限',
            
          11. xtype: 'combo',
            
          12. name: 'auth'
            
          13. },{
            
          14. fieldLabel: '帳號(hào)',
            
          15. name: 'account'
            
          16. },{
            
          17. fieldLabel: 'Email',
            
          18. name: 'email',
            
          19. vtype:'email'
            
          20. },{
            
          21. fieldLabel: '啟用',
            
          22. xtype: 'checkbox',
            
          23. name: 'enabled'
            
          24. }
            
          25. ]
            
          26. });


          如此這樣就能實(shí)現(xiàn)一個(gè)包含了很多元素的表單, items里面定義了表單要顯示的輸入框等組件,但是items里面僅僅是簡(jiǎn)單的json對(duì)象,怎么能顯示出來(lái)各種不同的表單元素呢?

          我們注意到items的每一個(gè)元素幾乎都有一個(gè)xtype屬性,這個(gè)xtype屬性就是描述組件類的關(guān)鍵.

          其實(shí)Ext里面的組件(Panel, Form Datepicker等等), 在定義完Class之后, 都會(huì)把自己注冊(cè)到Ext.ComponentMgr里面. 簡(jiǎn)單看一個(gè)box的組件, 在BoxComponent.js文件的最后一行可以看到:

          Ext.reg('box', Ext.BoxComponent);


          而在, ComponentMgr.js文件里

          // private
          # registerType : function(xtype, cls){
          # types[xtype] 
          = cls;
          # cls.xtype 
          = xtype;
          # },
          #
          // private
          # create : function(config, defaultType){
          return new types[config.xtype || defaultType](config);
          # }
          # };
          # }();
          #
          // this will be called a lot internally,
          // shorthand to keep the bytes down
          # Ext.reg = Ext.ComponentMgr.registerType;


          其實(shí)是執(zhí)行了registerType 這個(gè)方法,方法很簡(jiǎn)單, 把xtype這個(gè)名字和對(duì)應(yīng)的cls放到types里面, 而后看到create 我們應(yīng)該會(huì)明白了, 以后想創(chuàng)建組件的時(shí)候,就調(diào)用 create({xtype: 'box'}) 就OK了

          那么我們看看items里面的元素是怎么創(chuàng)建的吧, form的繼承樹中有一個(gè)Ext.Container類, 恩,就在這個(gè)類里呢:

             1.  // private
             2. lookupComponent : function(comp){
             
          3if(typeof comp == 'string'){
             
          4return Ext.ComponentMgr.get(comp);
             
          5. }else if(!comp.events){
             
          6return this.createComponent(comp);
             
          7. }
             
          8return comp;
             
          9. },
            
          10.
            
          11// private
            12. createComponent : function(config){
            
          13return Ext.ComponentMgr.create(config, this.defaultType);
            
          14. },


          恩,基本就是這樣了, 希望對(duì)大家理解Ext有所幫助

          /************************* ***********************/
          附件是我弄的一個(gè)Ext的組件結(jié)構(gòu)圖, 還附有各個(gè)組件的說(shuō)明, 希望大家喜歡, 大家快下呀....


          posted on 2007-10-20 20:01 差沙 閱讀(7729) 評(píng)論(25)  編輯  收藏 所屬分類: bew

          FeedBack:
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2007-10-20 21:34 | 海邊沫沫
          沙發(fā)  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2007-10-21 09:29 | thinkbase
          我是在 javaeye 上看到這篇文章的, 很不錯(cuò), 雖然我習(xí)慣潛水一般不回, 呵呵  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2007-10-21 13:04 | BeanSoft
          多謝啊! 支持!  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2007-11-21 16:22 | fjpan2002
          謝謝樓主了。  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2007-12-26 23:18 | 鄭偉
          大哥 附件在哪啊 ,小弟剛剛接觸 ext 希望大哥 指點(diǎn)一二  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖[未登錄]
          2008-01-03 11:39 | aa
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖[未登錄]
          2008-02-18 10:44 | dd
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2008-02-22 13:01 | coder
          謝謝了  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2008-03-11 10:02 | 路過(guò)
          附件呢  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖[未登錄]
          2008-04-22 12:50 | lily
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖[未登錄]
          2008-05-05 13:22 | jason
          附件,哪里  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖[未登錄]
          2008-05-10 17:05 | 天涯
          附件呢?  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2008-05-21 15:50 | 夕顏
          先頂頂 沒看到附件``  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2008-06-05 15:23 | qwety
          大哥,附件呢,我正需要啊  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2008-06-12 22:27 | khajuraho
          很好,第一次看到ext就感覺很爽。謝謝樓主更詳盡的描述。  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2008-06-23 13:33 | dengshengyx
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖[未登錄]
          2008-07-07 20:10 | 啦啦啦
          問下:
          file 類型怎么弄  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2008-07-11 16:43 | eye
          feichanghao  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2008-08-19 19:46 | 謝謝
          好東西一定不能沉下去,UP UP UP UP UP UP UP   回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2008-10-26 22:20 |
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2008-10-26 22:20 |
          怎么沒有附件的啊!  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2008-11-28 09:07 | hjhj
          mei you fjian  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2010-12-03 18:50 | alian
          組件呢  回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2012-08-06 11:46 | zds
          真的很不錯(cuò)哦
            回復(fù)  更多評(píng)論
            
          # re: Ext的組件結(jié)構(gòu)分析,附Ext組件結(jié)構(gòu)圖
          2013-04-03 17:10 | haha.
          附件在哪里呀?  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          這家伙很懶,但起碼還是寫了一句話。

          <2010年12月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(8)

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 门源| 天等县| 班玛县| 青河县| 炎陵县| 和静县| 邯郸县| 宣城市| 虹口区| 茶陵县| 军事| 安西县| 常德市| 平江县| 马公市| 福建省| 咸阳市| 民权县| 兴义市| 高平市| 东至县| 延长县| 乐安县| 个旧市| 灯塔市| 泰和县| 师宗县| 大竹县| 延吉市| 咸丰县| 天全县| 封开县| 宁明县| 庆城县| 龙口市| 得荣县| 永修县| 固始县| 民和| 潢川县| 浙江省|