zoukankan      html  css  js  c++  java
  • sencha touch 学习笔记 基础中的基础(类和项目结构)(2013网页装在兜里)

    在开始学习sencha touch 时看到sencha touch竟然有如此多的组建,真方便,几乎赶上了ASP.NET里面的那些拖拉弹唱的组建,这恐怕要和当年学习ASP.NET一样学组建就要学上好长时间,以前学习这些组建的记忆浮现的脑海中。。。。。。。。。。。。。。。。。。。。。。

    (ps:若干年后发现,学习这些东西是人生中最傻的决定,),所以在这个地方跌倒过一次,这次就绕过去

    sencha touch  之所以优秀,几乎可以和jquery分庭抗礼,是为什么呢?因为他有很多组建?因为他有很多插件?因为他的api很好用?(ps:个人感觉sencha touch 组建不多,插件不多,api也不好用),个人认为是因为sencha touch有自己强大的类机制。

    http://docs.sencha.com/touch/2.2.0/#!/api   看看这么多组建

    sencha touch 的基础----类

    sencha touch 之所以强大是因为sencha touch 有一套自己的类机制,可以以面向对象的方式去写代码,封装业务逻辑,sencha touch 的组建、插件、api等都建立在这一套类机制的上面

    帮助文档中对类系统进行的介绍

    http://docs.sencha.com/touch/2.2.0/#!/guide/class_system

    和类相关的基本类

    http://docs.sencha.com/touch/2.2.0/#!/api/Ext.ClassManager

    作为学习sencha touch 简单了解一下就好了

    首先定义一个类的语法:Ext.define(className, properties);

    Ext.define('Person', {
         //字段    
         name: 'Unknown',
         //构造函数
         constructor: function(name) {
             if (name) {
                 this.name = name;
             }
    
             return this;
         },
         //方法
         eat: function(foodType) {
             alert("I'm eating: " + foodType);
              //返回自己,方便像jquery一样写代码
             return this;
         }
    });

    然后创建一个类的实例或实例化一个类,这个有很多方法,例如

    var aaron = new Person("Aaron");

    Ext.create('cnblogs.view.Main');Ext.create("cnblogs.store.feedlist") 等方法

    在sencha touch  中一不小心就忘记了把类实例化,总认为sencha touch 为自动实例化我要用的类。。。。

    我知道的这些东西会自动载入,并实例化类的 代码

     requires: [
            'Ext.MessageBox',
            'Ext.data.proxy.JsonP',
            'Ext.dataview.List'
        ],
    
        views: [
            'Main','cnblogs.view.blogsinfo'
        ],
        models:[
            'cnblogs.model.feedlist'
        ],
        stores:[
            'cnblogs.store.feedlist'
        ],

    而且可以继承一个类 例如继承Person这个类,在sencha touch中开始用的比较多的也是继承一个类

    Ext.define('Developer', {
         extend: 'Person',
    
         constructor: function(name, isGeek) {
             this.isGeek = isGeek;
    
             // Apply a method from the parent class' prototype
             this.callParent([name]);
    
             return this;
    
         },
    
         code: function(language) {
             alert("I'm coding in: " + language);
    
             this.eat("Bugs");
    
             return this;
         }
    });

    类了解这些基本就行了,(ps:我也只了解这些)

    项目结构

    不会生成项目的点击 这里

    关于项目结构的详细介绍 http://docs.sencha.com/touch/2.2.0/#!/guide/command_app

    image

    app.js里面的代码 一般都是这样的

    Ext.Loader.setPath({
        'Ext': 'touch/src',
        'cnblogs': 'app'
    //设置sdk的目录,就是下载的sencha touch 的源码如果是自动生成项目这里就配置好了
    });
    //</debug>
    
    //定义项目
    Ext.application({
        name: 'cnblogs',
    
        requires: [              //requires 用来载入这些依赖的类
            'Ext.MessageBox',
            'Ext.data.proxy.JsonP',
            'Ext.dataview.List'
        ],
    
        views: [                  //views 用来载入依赖的视图
            'Main','cnblogs.view.blogsinfo'
        ],
        models:[
            'cnblogs.model.feedlist'
        ],
        stores:[
            'cnblogs.store.feedlist'
        ],
    
        icon: {
            '57': 'resources/icons/Icon.png',
            '72': 'resources/icons/Icon~ipad.png',
            '114': 'resources/icons/Icon@2x.png',
            '144': 'resources/icons/Icon~ipad@2x.png'
        },
    
        isIconPrecomposed: true,
    
        startupImage: {
            '320x460': 'resources/startup/320x460.jpg',
            '640x920': 'resources/startup/640x920.png',
            '768x1004': 'resources/startup/768x1004.png',
            '748x1024': 'resources/startup/748x1024.png',
            '1536x2008': 'resources/startup/1536x2008.png',
            '1496x2048': 'resources/startup/1496x2048.png'
        },
    
        launch: function() { //所有依赖载入完毕,开始启动项目
            // Destroy the #appLoadingIndicator element
            Ext.fly('appLoadingIndicator').destroy();
    
            // Initialize the main view
            Ext.Viewport.main=Ext.create('cnblogs.view.Main');
            Ext.Viewport.add(Ext.Viewport.main);
        },
    
        onUpdated: function() {
            Ext.Msg.confirm(
                "Application Update",
                "This application has just successfully been updated to the latest version. Reload now?",
                function(buttonId) {
                    if (buttonId === 'yes') {
                        window.location.reload();
                    }
                }
            );
        }
    });
  • 相关阅读:
    python 矩阵转置
    go
    Go-GRPC 初体验
    SpringMVC笔记——Spring+MyBatis组合开发简单实例
    MyBatis笔记——EhCache二级缓存
    MyBatis笔记——Mapper动态代理
    MyBatis笔记——初次环境配置
    Spring笔记——配置Hibernate框架事务
    Hibernate笔记——关联关系配置(一对多、一对一和多对多)
    Mysql笔记——触发器简单实例
  • 原文地址:https://www.cnblogs.com/qqloving/p/3050413.html
Copyright © 2011-2022 走看看