成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

Sencha Ext JS 4開發入門教程

2012-06-24 09:10:30來源:OSCHINA翻譯作者:

這個教程叫告訴你如何開始基于 Sencha Ext JS 4 開發程序,同時提供完整的教程源碼和 3 個高清的視頻講解。

這個教程叫告訴你如何開始基于 Sencha Ext JS 4 開發程序,同時提供完整的教程源碼和 3 個高清的視頻講解。

準備工作

你無需單獨為 Sencha 安裝開發環境,只需要有一個 Web 瀏覽器、Web 服務器和一個文本編輯器即可。我使用的是 Mac 機器和 Chrome 瀏覽器,使用 Mac 的 Web 服務器和 Komodo 編輯器,你可從 Sencha Getting Started 鏈接中獲取如何安裝環境的說明。

Hello World

一般我們在學習一種新語言或者技術時,都會編寫一個 Hello World 程序來快速的了解語言的開發工作。在這個例子中,我們在 Hello world 基礎上增加一些東西,我們添加一個 Viewport 組件、Sencha classpathing ,一個定制的超類和之類,以及一個 mixin 類的實例。

項目輸出結果

該示例程序運行后的結果如下圖所示,我同時使用桌面瀏覽器和手機瀏覽器來查看運行結果,Sencha 同時提供了 Sencha Touch,主要用來構建智能手機上的應用,但今天我們主要講桌面版的 Ext JS。

調試:在 chrome 窗口中,通過 Chrome 內置的開發者工具 (Built-In View->Developer->Developer’s Tools) 可看到 Sencha Ext JS 的輸出:

Sencha Ext JS 4開發入門教程
In Chrome on Mac

Sencha Ext JS 4開發入門教程
In iOS (Via Emulator)

Sencha Ext JS 4開發入門教程

入口

你可看到 index.html 加載了三個外部文件

<html>
<head>
    <title>Hello World</title>
 
    <!-- STYLES -->
    <link rel="stylesheet" type="text/css" href="./libs/resources/css/ext-all.css">
 
    <!-- LIBS -->
    <script type="text/javascript" src="./libs/ext-all-debug.js"></script>
 
    <!-- APP -->
    <script type="text/javascript" src="./app.js"></script>
 
</head>
<body></body>
</html>

樣式

我使用了在一些基本的教程中找到的默認的 CSS,沒有做任何編輯工作。

ExtJS 的幾種庫文件

還有一些其他的選擇,具有獨特的優勢。

如下:

  • ext-all-debug-w-comments.js – 整個框架的調試版本,包含注釋信息,該文件很大,占用更多的處理器資源
  • ext-all-debug.js – 與上面文件相同,但是缺少注釋,還是很大,但用于調試比較方便。
  • ext-all.js – 包含整個框架并經過最小化處理,不支持調試,沒有注釋,產品環境中請使用該文件。
  • ext-debug.js – 該文件提供最佳的調試體驗,但也是最慢的。
  • ext.js – ext-debug.js 經過壓縮處理后的版本

App

app.js 文件是你定制代碼的入口,你可以將你定制的代碼放在 src 和 assets 文件夾中。在我的定制代碼中,我展示了一些有趣的東西:

Components

我沒有對 Sencha 組件庫進行深入研究,但有很多好看的組件,包括:Accessibility, Grids, Charts, Tabs, Windows, Trees, Layout, Managers, Drawing, Drag and Drop, Toolbars, Menus, ComboBox, DataView, Forms, MVC 等等,這里有一個 ViewPort 的簡單例子:

testSomeUI: function() {
    Ext.create('Ext.container.Viewport', {
        name : "viewPort2",
        layout: 'fit',
        items: [
            {
                title: 'My Viewport',
                html : 'Hello World!'
            }
        ]
    });

},
 

Classpathing

Sencha 提供一種很好的方式將代碼分開成為單獨的類,并可將類存放于包中。所有包的根就是源碼根路徑。Classes/packages 可幫助你組織和調試(在斷點位置可更清晰的顯示問題所在)

首先,我指定了一個或者多個 classpaths:

Ext.Loader.setConfig({
    enabled : true,
    paths   : {
        com : "src/com"
    }
});

然后在主 app 中加載并使用某個類:

// SUPER CLASS
var myBeer = Ext.create('com.rmc.projects.helloworld.Beer', 'Budweiser');     
console.log ("myBeer.brandName: " + myBeer.brandName );
console.log (myBeer.drink());
 
// CHILD CLASS
var myLightBeer = Ext.create('com.rmc.projects.helloworld.LightBeer', 'BudLight');     
console.log ("myLightBeer.brandName: " +myLightBeer.brandName );
console.log (myLightBeer.drink());
 
// MIXIN
//  Because of 'MixinCheers.js' we can call 'cheers()'
myLightBeer.cheers();

我閱讀了文檔,知道這被稱為“動態加載”類,可在需要的時候加載。由于 JavaScript 原生是不支持面向對象開發,但是在 Sencha 中卻工作得很好:

這里是一個超類:

Ext.define('com.rmc.projects.helloworld.Beer', {
 
    // --------------------------------------
    // Properties
    // --------------------------------------
    brandName: 'Unknown',
    calories: 0,
 
    // --------------------------------------
    // Constructor
    // --------------------------------------
    constructor: function(brandName) {
 
        // SUPER
 
        // EVENTS
 
        // VARIABLES
 
        // PROPERTIES
        this.calories = 200;
        if (brandName) {
            this.brandName = brandName;
        }
 
        // METHODS
 
        // RETURN
        return this;
    },
 
    // --------------------------------------
    // Methods
    // --------------------------------------
    drink: function() {
 
        return "The beer '"+ this.brandName+"' was drank. Calories : " + this.calories;
    }
 
});

然后是一個之類,擴展了超類:

Ext.define('com.rmc.projects.helloworld.LightBeer', {
 
    // --------------------------------------
    // Properties
    // --------------------------------------
    extend : "com.rmc.projects.helloworld.Beer",
 
    mixins: {
        ch: 'com.rmc.projects.helloworld.MixinCheers'
    },
 
    // --------------------------------------
    // Constructor
    // --------------------------------------
    constructor: function(brandName) {
 
        // SUPER
        this.superclass.constructor.apply(this, [brandName]);
 
        // EVENTS
 
        // VARIABLES
 
        // PROPERTIES
        this.calories = 100;
 
        // METHODS
 
        // RETURN
        return this;
    },
 
    // --------------------------------------
    // Methods
    // --------------------------------------
 
 
});

這里是一個 mixin 類,子類中使用:

Ext.define('com.rmc.projects.helloworld.MixinCheers', {
 
    // --------------------------------------
    // Properties
    // --------------------------------------
 
    // --------------------------------------
    // Constructor
    // --------------------------------------
 
    // --------------------------------------
    // Methods
    // --------------------------------------
    cheers: function() {
        console.log ("Cheers!");
    },
 
 
});

Ext JS MVC 模板

如果你喜歡上面的 Hello world 例子,這里有一些更高級的東西。我的靈感來自于 Robotlegs MVC Templates (這是我為 AS3/Flex 創建的項目),今天我們使用同樣的思路創建一個 Ext JS MVC 模板。

模板的目的是為了創建一個簡單的、空的 MVC 應用,這個可以作為你新的 Ext JS 項目的基準。MVC 是 web 開發廣泛使用的設計模式,這里的應用提供一個簡單的 UI 包含 load 和 clear 按鈕,load 按鈕從 model 中加載數據并在 view 中顯示,這是一個很簡單的例子,但足以演示 Sencha Ext JS 中一些關鍵的概念。

Sencha Ext JS 4開發入門教程
Figure 1

Sencha Ext JS 4開發入門教程
Figure 2

結論

我很高興有 Sencha Ext JS 這樣的東西,該框架為 JavaScript 增加了更強大的功能,其樣式系統也非常的靈活和可靠,組件看起來都很棒。

資源

關鍵詞:SenchaExtJS

贊助商鏈接:

主站蜘蛛池模板: 潢川县| 阳山县| 平度市| 无棣县| 龙里县| 义乌市| 吴堡县| 永善县| 和田市| 健康| 宜君县| 东阿县| 怀远县| 白银市| 星座| 天津市| 建湖县| 晴隆县| 广平县| 霞浦县| 仲巴县| 衡南县| 长岭县| 岳阳市| 台江县| 浦北县| 工布江达县| 江山市| 进贤县| 双城市| 小金县| 咸宁市| 萨嘎县| 绥芬河市| 长葛市| 天镇县| 沁阳市| 库车县| 林口县| 咸丰县| 湟中县|