關於ExtJS3.1與ExtJS4.2的區別
1.可以使用alias來為元件新增別名,類似以前的Ext.reg,不過alias會用不同的類別區分開來,例如,widget.xxxxx和feature.xxxxx是不一樣的,雖然它們都是用alias來定義的,但是類別完全不同。
2.包和名稱空間的改變
現在的ExtJS不再使用混亂的分包機制(其實以前的感覺更加直白),例如以前的Window,包名是Ext.Window,但是現在則是Ext.window.Window,Ext.window包下還包括了Ext.window.MessageBox等。SplitButton則是Ext.button.Split。
3.建立新物件
現在ExtJS使用Ext.define函式來建立元件類,該函式還能實現自動載入js類(uses屬性,需設定Ext.Loader為開啟詳見下文,看不懂看API),它會自動的完成以前的ns(namespace)功能。例如下面
Js程式碼
Ext.ns(“Foo.bar”);
Foo.bar = Ext.extend(Ext.util.Observable,{
//your code here
});
Ext.reg(“foobar”,Foo.bar);
所以現在建立一個元件應該是這樣的:
Js程式碼
Ext.define(“Foo.bar”,{
extend : “xxxxxx”,
alias : “widget.foobar”
//your code here
});
現在ExtJS不再使用new關鍵字(當然你想用也沒關係),而是推薦使用Ext.create函式來解決這個問題,例如以往我們建立一個元件的程式碼是
Js程式碼
var win = new Ext.Window({
//some options
});
而現在則是
Js程式碼
var win = Ext.create(“Ext.window.Window”,{
//some options
});
4.Ext.env.Browser
ExtJS3有Ext.isIE、Ext.isFF等方法判斷瀏覽器,這次ExtJS4不僅僅保留了以前的函式,還提供了更為強大Ext.env包來幹這些事情,這個包下面還有其他兩個類:
Ext.env.OS,顧名思義判斷作業系統的,還新增了一些作業系統(主要是移動領域的作業系統)
if (Ext.os.is.Windows) {
// Windows specific code here
}
if (Ext.os.is.iOS) {
// iPad, iPod, iPhone, etc.
}
5.Ext.env.FeatureDetector,這個是新加的,主要用於判斷HTML5和CSS3的,例如
CSS3/動畫/轉換
Canvas/ SVG/ VML
觸控式螢幕是否可用/方向
地理位置(html5的東西相信不陌生吧?)
SqlDatabase
WebSockets
History
音訊
視訊
6.Model代替了store的功能,store中一個變化就是baseParams變成了extraParams
Js程式碼
Ext.define(‘User’, {
extend: ‘Ext.data.Model’,
fields: [
{name: ‘name’, type: ‘string’},
{name: ‘age’, type: ‘int’}
]
});
Ext.create(“Ext.data.Store”,{
modal:”User”,
proxy{
url : “xxxx.do”,
type : “ajax”
}
})
7.Proxy中新增了一個localStorage(Ext.data.proxy.LocalStorage)用於過渡到Html5的localStorage等等。
Draw繪圖
這個東西喜歡嗎?我喜歡嘿嘿
ExtJS4中提供了繪圖,誇瀏覽器的,它內部實現了Canvas、SVG、VML等繪圖方法,所以不同的瀏覽器它會自動使用該瀏覽器支援的繪圖方式。支援IE6789、基於Gecko的瀏覽器(FF)、基於WebKit核心的瀏覽器(Chrome)。
8.Lang包的修改
9.ExtJS4的senchaSDKtools裡面還提供了theme的製作,ExtJS審美疲勞了可以換換這個。
---------------------
作者:零零歷險記
來源:CSDN
原文:https://blog.csdn.net/qq_34639706/article/details/74316093
版權宣告:本文為博主原創文章,轉載請附上博文連結!