1. 程式人生 > >【extjs6學習筆記】0.1 準備:基礎概念(02)

【extjs6學習筆記】0.1 準備:基礎概念(02)

json over cal 類的屬性 tab 常用事件 data 微軟 基於

Ext 類

Ext 是一個全局單例的對象,在 Sencha library 中它封裝了所有的類和許多實用的方法。許多常用的函數都定義在 Ext 對象裏。它還提供了像其他類中一些頻繁使用的方法的快速調用。

? ?

define 方法

你可以用這個方法定義或者重寫一個類。 這個方法有三個參數,如以下代碼所示。 在這裏 name 參數是你要定義的類名,data 參數是應用於這個類的屬性,callback 是可選參數,這個函數將會在這個類被創建後調用:

? ?

Ext.define(name,data, callback)

技術分享

extend 會創建一個新的類,並繼承父類的屬性和方法,你也可以重寫父類的方法。而 override 並不會創建一個新的類,而是修改這個被重寫的父類。

? ?

create 對象

創建一個類的實例:

? ?

getClass

如果創建的實例是用 Ext.define 定義的,那麽返回這個給定對象的類,否則返回 null:

? ?

getClassName

通過它的引用或實例返回類名稱:

? ?

-----------------------------------------------------------------------------

? ?

訪問 DOM

有三種方法來訪問 DOM 元素:getquery,和 select

? ?

Ext.get

get 方法是根據這個 DOM 元素的 ID 檢索獲取並封裝為 Ext.dom.Element

對象:

??

var mydiv = Ext.get(‘myDivId‘);

Ext.query

這種方式基於傳入的 CSS 選擇器 從給定的根節點開始查找。它返回一個匹配選擇器的元素(HTMLElement[]/Ext.dom.Element[])數組。如果沒有匹配的,返回一個空值的數組對象。

在下面示例中,myCustomComponent.getEl().dom 是傳遞的根節點。Ext.query 將檢索這個節點內的子元素,並返回一個數組包含 CSS class 為 ‘oddRow‘ 的的元素:

??

var someNodes = Ext.query(‘.oddRow‘, myCustomComponent.getEl().dom);

? ?

Ext.select

給出一些 CSS/XPath 選擇器,Ext.select 方法返回一個 CompositeElement 類型的對象,代表一個元素的集合。

這個 CompositeElement 對象可以進行過濾,叠代,和對整個集合執行整體操作等等:

? ?

??

var rows = Ext.select(‘div.row‘); ////Matches all divs with class

row rows.setWidth(100); // 這是設置所有元素的寬度為 100

? ?

你也可以用一行代碼,如下所示:

??

Ext.select(‘div.row‘).setWidth(100);

? ?

--------------------------------------------------------------------------------

? ?

Store

一個 store 代表一個 模型的實例 的集合並用於代理獲取數據。store 還定義了集合操作,例如 排序,過濾等等。它是通過擴展 Ext.data.Store 定義的。

? ?

Store 事件

store 提供了很多可監聽的事件。store 的一些常用事件:

  • add: 當一條記錄添加到 store 後調用
  • beforeload: 在加載數據之前調用
  • beforesync: 在進行同步操作之前調用
  • datachanged: 當 store中的記錄產生新增或刪除時觸發調用
  • load: 當 store 讀取一個遠程數據源後觸發調用
  • remove: 從 store 移除一條記錄觸發調用
  • update: 當 store 中的一條記錄被更新觸發調用

? ?

技術分享

? ?

--------------------------------------------------------------------------------

? ?

代理

所有的 stores 和 models 使用 proxy 來加載和保存數據。在代理中使用這個配置你可以指定如何讀取和寫入數據。你也可以指定調用 URL 讀取數據;你可以告訴讀取器這些數據的格式,不論是 JSON 還是 XML ,等等。

有兩種類型的代理:客戶端代理和服務器代理。

客戶端代理

客戶端代理是用於處理客戶端本身數據的加載和保存。這氛圍三種客戶端代理:內存,本地存儲,和會話存儲。

? ?

技術分享

? ?

技術分享

? ?

技術分享

? ?

服務器端代理

服務器端代理是向服務器通信來讀取或保存數據。有四種代理:

  • Ajax: 用於異步請求數據
  • Direct: 使用 Direct 與服務器通信
  • JSONP (JSON with padding): 這很有用,當你需要發送跨域請求時。而 ajax 只能請求相同的域。
  • REST: 這會向服務器發送一個 ajax 請求,使用 RESTful 的風格,例如 GET,POST,PUT,和 DELETE。

? ?

? ?

【extjs6學習筆記】0.1 準備:基礎概念(02)