sencha touch 学习笔记- 基础中的基础(类和项目结构)(2013网页装在兜里)

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

在开始学习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();
                }
            }
        );
    }
});
test
相关文章
|
9月前
|
开发框架 前端开发 Linux
前端知识笔记(二十四)———快速创建桌面端(electron-egg)
前端知识笔记(二十四)———快速创建桌面端(electron-egg)
451 0
|
9月前
|
XML 数据格式
熟练使用浏览目录类命令
熟练使用浏览目录类命令。
96 2
|
9月前
|
小程序 Linux 开发工具
手把手教你如何在Linux下写进度条小程序(附源码)
手把手教你如何在Linux下写进度条小程序(附源码)
|
前端开发
DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作)
DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作)
228 0
|
移动开发 前端开发 小程序
为了偷懒,我用google/zx一键自动打包编译了前后端项目并发布到指定环境
由于正在负责的一个项目,就说前端涉及到PC端、公众号端、APP端的H5、小程序端、可视化大屏端,而PC和APP又通过qiankun引入了微前端的理念。整体一圈下来可能光前端编译打包就要build差不多二十次。而有时候经常性的bug改动,这个时候便只需要进行测试后需要进行小范围的测试。
229 0
Wix 安装部署教程(十二) -- 自动更新WXS文件
原文:Wix 安装部署教程(十二) -- 自动更新WXS文件         上一篇分享了一个QuickWIX,用来对比两个工程前后的差异,但是这样还是很繁琐,而且昨天发现有Bug,目录对比有问题。这次改变做法,完全让程序自动去更新WXS文件,然后再用CCNet去自动编译,这样的话,工程师更新文件,再也不用我去编译,发布了。
1263 0
|
JavaScript Apache Android开发
ExtJS6的中sencha cmd中自动创建案例项目代码分析
在之前的博文中,我们按照sencha cmd的指点,在自己win7虚拟机上创建了一个案例项目,相当于创建了一个固定格式的文档目录结构,然后里面自动创建了一系列js代码。 然后我们将整个项目,copy到win7服务器上部署好的apache服务器上,运行一下,果然可以使用。
2419 0
|
JavaScript 前端开发 .NET

热门文章

最新文章