差沙的密碼 -- 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ì)象,怎么能顯示出來各種不同的表單元素呢?

          我們注意到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è)組件的說明, 希望大家喜歡, 大家快下呀....


          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 | 路過
          附件呢  回復(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)論排行榜

          主站蜘蛛池模板: 抚顺市| 曲松县| 敖汉旗| 闵行区| 同心县| 瑞安市| 聊城市| 那曲县| 全州县| 仁布县| 丰顺县| 清丰县| 友谊县| 葵青区| 饶平县| 广昌县| 元江| 蕉岭县| 红桥区| 东兴市| 深水埗区| 射洪县| 海林市| 谷城县| 蒲城县| 盘锦市| 高州市| 沐川县| 德保县| 大姚县| 庆阳市| 襄汾县| 阳城县| 桓仁| 隆林| 江永县| 蒙阴县| 河曲县| 屏东县| 疏勒县| 东源县|