Ext js-02 -官方API文檔使用


官方API文檔地址:

http://docs.sencha.com/extjs/6.5.3/classic/Ext.html 

打開網頁如下:

1.選擇所使用的Ext js版本,后面offline docs是離線文檔的下載

2.搜索功能:查找類,組件等

需要注意這個API下面modern是手機端對應的組件,classic對用的是電腦端的組件的介紹

例子:搜索messagebox,選擇第二個Ext.window.MessageBox,打開如下:

 3.看懂API對組件的介紹:如單例對象,組件類,xtype,config配置,properties配置,methods方法,events事件,繼承體系等

(1)單例對象與組件類:

點擊左側的Ext ,在顯示的界面上會看到一個SINGLETON的標識,表示這是一個單例對象(注意,單例對象前面顯示的是紅色的圖標),在整個應用當中,只有一個Ext對象,

下邊configs,properties,methods是這個單例對象具有的一些屬性,方法等

 

搜索messagebox時,會出現Ext.window.MessageBox,和Ext.MessageBox,后者是一個單例對象,如上圖,而Ext.window.MessageBox是一個組件(每一個組件都是一個類),Ext.window.MessageBox 指明了 Ext.MessageBox這個對象所屬的類是哪一個類,xtype 相當於一個別名,方便使用。

(2)configs 的使用,先關注一下類搜索和成員搜索的區別,是不同的搜索框

以Ext.MessageBox為例

 上邊fn就是alert方法的回調函數,也就是alert方法執行完后再執行的函數,scope是回調函數執行的范圍,以例子說明如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>ext js入門</title>
 6     <!-- 引入ext js 的樣式文件-->
 7     <link rel="stylesheet" type="text/css" href="ext/classic/theme-triton/resources/theme-triton-all.css" />
 8     <!-- 引入ext js的核心庫-->
 9     <script src="ext/ext-all.js"></script>
10     <script>
11        // alert("js原生彈出框 :hello");
12        //需要Extjs框架初始化完成才能執行
13        Ext.onReady(function(){
14            //使用ext 彈出框的回調函數
15            Ext.MessageBox.alert('Ext彈出框','hello world',function () {
16                console.log('ext js'); //在控制台打印內容
17            });
18        })
19     </script>
20 </head>
21 <body>
22 
23 </body>
24 </html>

執行過程:

常用組件panel的使用

這里使用new關鍵字來創建一個panel對象,格式為  new Ext.panel.Panel({   需要配置的參數列表 }),這里需要配置的參數,把鼠標放在configs上面就顯示出來可選的配置參數了:

 

使用create方式創建對象:格式為: Ext.create('類的名字,{屬性配置 }) ,或者直接搜索Panel這個類下面的create方法,給出了create方法的使用說明:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>ext-panel使用</title>
 6     <!-- 引入ext js 的樣式文件-->
 7     <link rel="stylesheet" type="text/css" href="ext/classic/theme-triton/resources/theme-triton-all.css" />
 8     <!-- 引入ext js的核心庫-->
 9     <script src="ext/ext-all.js"></script>
10     <script>
11 
12        Ext.onReady(function(){
13            //不同於單例對象,panel對象需要自己創建,第一種方式:new對象
14           var panel =  new Ext.panel.Panel({
15                 width:300,
16                 height:150,
17                 title:'面板標題',
18                 html:'面板顯示的內容',//指定顯示的內容
19                 renderTo: 'dd',//面板必須要進行渲染才進行顯示,配置這個panel在哪里顯示
20            })
21            //使用create方法 格式為: Ext.create('類的名字,{屬性配置 })
22            Ext.create('Ext.panel.Panel',{
23                width:300,
24                height:150,
25                title:'面板2',
26                html:'面板2顯示的內容',//指定顯示的內容
27                //renderTo: 'dd2',
28                renderTo:Ext.getBody()
29            })
30        })
31     </script>
32 </head>
33 <body>
34 <div id="dd"></div>&nbsp;&nbsp;
35 </body>
36 </html>

也可以使用  Ext.getBody() 來獲取body這個對象,讓panel顯示在html的body中 , 運行如下:

Ext.get獲取到的直接是Ext的對象,在創建的時候就進行渲染     不像jquery中獲取到的是DOM元素,需要用$()轉換為jquery對象)

    

第三種方式創建panel對象,格式為 Ext.create({xtype:' ' ,對象屬性 })

 
         
//通過別名獲取panel對象Ext.create({xtype:'',對象屬性  })
var panel3 = Ext.create({
xtype:'panel',
width:300,
height:150,
title:'面板3',
html:'面板3顯示的內容',//指定顯示的內容
})
panel3.render(Ext.getBody()) //在指定時刻渲染

(3)properties:屬性

用來判斷,查看,例如console.log(panel3.draggable); //打印面板的拖拽屬性的值

(4)methods

當前組件擁有的一些方法,直接使用對象.方法名()就能調用了,如、panel3.close() ,關閉面板

(5)events 事件

例如:控制台打印 panel3.draggable的值后,關閉面板,當監聽到關閉事件時,又開始執行關閉事件的回調函數,在控制台打印 關閉

在組件配置時 使用listeners:{} 屬性來設置事件監聽:

 1  //通過別名獲取panel對象Ext.create({xtype:'',對象屬性  })
 2            var panel3 = Ext.create({
 3                xtype:'panel',
 4                width:300,
 5                height:150,
 6                title:'面板3',
 7                html:'面板3顯示的內容',//指定顯示的內容
 8  listeners:{ 9 close:function(){ 10 console.log("關閉...") 11 } 12 } 13            })
14            panel3.render(Ext.getBody()) //在指定時刻渲染
15            console.log(panel3.draggable); //
16            panel3.close()

使用on方法監聽組件的事件:對象.on('事件名稱',function () { 回調函數要執行的業務 }

 1 var panel3 = Ext.create({
 2                xtype:'panel',
 3                width:300,
 4                height:150,
 5                title:'面板3',
 6                html:'面板3顯示的內容',//指定顯示的內容
 7                listeners:{
 8                    close:function(){
 9                        console.log("關閉...")
10                    }
11                }
12            })
13            panel3.on('close',function () {
14                console.log("使用on監聽事件...")
15            })
16            panel3.render(Ext.getBody()) //在指定時刻渲染
17            console.log(panel3.draggable); //
18            panel3.close()

使用addListener() 方法來監聽事件:  對象.addListener('事件名稱',function () {  事件的回調函數執行的業務  } )

 1 var panel3 = Ext.create({
 2                xtype:'panel',
 3                width:300,
 4                height:150,
 5                title:'面板3',
 6                html:'面板3顯示的內容',//指定顯示的內容
 7                listeners:{
 8                    close:function(){
 9                        console.log("關閉...")
10                    }
11                }
12            })
13            panel3.on('close',function () {
14                console.log("使用on監聽事件...")
15            })
16  panel3.addListener('close',function () { 17 console.log("使用addListener方法監聽事件...") 18 }) 19            panel3.render(Ext.getBody()) //在指定時刻渲染
20            console.log(panel3.draggable); //
21            panel3.close()

運行結果如下:

從上面可以看出,事件是可以疊加的

 

 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM