<ext JS> EXTJS的安装、sencha Cmd的安装、EXTJS数据包等

一、EXT的安装

在右方选择EXTJS,在输入邮箱,选中接受,然后下载,通过邮件的方式发送下载链接。

二、EXTJS的类声明方式与实例化操作

EXTJS声明方法:Ext.define();

EXTJS实例化方法:Ext.create();

三、组件

组件(component) 是对数据和方法的简单封装。

组件体系:

这种元素间的关系使得组件呈现层级关系。下图 展示了 ExtJS4.x 中组件间层级关系一种实例。

子组件通过容器的items加入到容器中,下面这个例子通过Ext.create方法创建了两个Panel,并把它们当作子组件添加到Viewport中:

四、XTypes and Lazy Instantiation xtype和延迟加载

每个组件都有一个代称叫做xtype,例如Ext.panel.Panelxtypepanel。所有组件的xtypeAPI Docs for Component 中有列出。上面那个例子说明了如何添加已经初始化的组件到一个容器中。在大的应用中,这种方式是不可行的,因为这种方法需要每个组件都是初始化过的,但是大的应用中,由于使用的方式有些组件可能根本没有被用到(比如有100个页面的应用,一个用户登录进来只操作了两个页面,这时把其他98个页面的组件全部初始化是不合理的),例如一个用到TabPanel的应用,TabPanel的每个tab只当用户点击它的时候再渲染即可。这就是引入xtype机制的原因,有了xtype可以让一个容器的子组件事先定义好,到真正需要的时候再初始化。

下面的示例代码通过TabPanel展示了延迟加载和延迟渲染,每个tab都有个响应函数监听tab的渲染render事件,渲染的时候会弹出一个对话框告知当前tab已经渲染

Ext.create(‘Ext.tab.Panel‘, {
    renderTo: Ext.getBody(),
    height: 100,
    width: 200,
    items: [
        {
            // Explicitly define the xtype of this Component configuration.
            // This tells the Container (the tab panel in this case)
            // to instantiate a Ext.panel.Panel when it deems necessary
            xtype: ‘panel‘,
            title: ‘Tab One‘,
            html: ‘The first tab‘,
            listeners: {
                render: function() {
                    Ext.MessageBox.alert(‘Rendered One‘, ‘Tab One was rendered.‘);
                }
            }
        },
        {
            // this component configuration does not have an xtype since ‘panel‘ is the default
            // xtype for all Component configurations in a Container
            title: ‘Tab Two‘,
            html: ‘The second tab‘,
            listeners: {
                render: function() {
                    Ext.MessageBox.alert(‘Rendered One‘, ‘Tab Two was rendered.‘);
                }
            }
        }
    ]
});

运行一下代码,第一个tab的渲染对话框马上就弹出了,因为默认激活第一个tab,所以它的父容器TabPanel立即初始化和渲染了它

不点击第二个tab,它的对话跨就一直不会弹出,这说明tab不会被渲染直到被用到,tab的render事件不会触发直到tab被激活

五、Showing and Hiding 显示和隐藏

所有组件都有内置的showhide方法。默认的css样式应用的是display: none,可以通过hideMode改变

var panel = Ext.create(‘Ext.panel.Panel‘, {
    renderTo: Ext.getBody(),
    title: ‘Test‘,
    html: ‘Test Panel‘,
    hideMode: ‘visibility‘ // use the CSS visibility property to show and hide this component
});

panel.hide(); // hide the component

panel.show(); // show the component

六、Floating Components 浮动组件

浮动组件定位于文档流之外,使用的是CSS的绝对定位属性,不受父容器的布局控制。有些组件,例如Window,默认就是浮动的,任何组件都可以通过floating属性配置成浮动的。

var panel = Ext.create(‘Ext.panel.Panel‘, {
    width: 200,
    height: 100,
    floating: true, // make this panel an absolutely-positioned floating component
    title: ‘Test‘,
    html: ‘Test Panel‘
});

上面的代码实例化了一个Panel对象,但是并没有渲染它。通常一个组件要么有renderTo属性配置渲染到什么位置,要么就作为容器的一个子组件由容器负责渲染,但是这个例子的浮动组件即不需要renderTo也不需要作为子组件。浮动组件第一次调用show方法时,会被自动渲染到DOM的document.body中:

panel.show(); // render and show the floating panel

有几个属性是使用浮动组件时值得注意的:

  • draggable – 让浮动组件可以拖拽
  • shadow – 定制浮动组件的阴影效果
  • alignTo() – 让浮动组件对齐到一个特定元素
  • center() – 让浮动组件相对于容器居中

七、Creating Custom Components 自定义组件

Composition or Extension 组合还是继承

当创建一个新的UI类时,必须决定这个类是引用其他组件的实例还是扩展这个组件。

推荐扩展最接近的组件添加自己需要的功能,这是因为使用继承的方式可以自动获得组件原有的自动生命周期管理能力,包括按须渲染、布局管理器提供的尺寸位置管理、从容器中删除的自动析构等。

扩展一个原有组件会让扩展出的组件隶属于组件层级中,这样比一个外部类引用并掌管ExtJS组件的实例要容易的多。

八、Model模型

Ext.define(‘MyApp.model.Base‘,{
   extend:‘Ext.data.Model‘,    //继承自Model
   fields:[{     字段和属性
   name:‘id‘,
   type:‘int‘
  }],
schema:{      类似于一个大的模型集合
   namespace:‘MyApp.model‘,  实体类名
proxy:{
   type:‘ajax‘,
   url:‘{entityName}.json‘,
reader:{   代表请求接口后的读取方式
   type:‘json‘.
   rootproperty:‘{entityName:lowercase}‘
}
}
}
});
时间: 2024-12-30 22:18:59

<ext JS> EXTJS的安装、sencha Cmd的安装、EXTJS数据包等的相关文章

Ext JS 6学习文档–第1章–ExtJS入门指南

Ext JS 入门指南 前言 本来我是打算自己写一个系列的 ExtJS 6 学习笔记的,因为 ExtJS 6 目前的中文学习资料还很少.google 搜索资料时找到了一本国外牛人写的关于 ExtJS 6 的电子书 [Ext JS 6 By Example].这份资料在 PACKT 上卖 35.99 刀的,当然了万能的 google 还是帮我下载到了 PDF 文档.大概看了一下,讲的很详细,例子也比较简单,容易理解,现我准备利用工作之余翻译这份文档,为自己学习加深理解,也希望能帮助更多的人学习.

extjs5基于SSH后台项目实战笔记--环境搭建及Sencha Cmd的安装和使用

最近做一个SSH的项目,前台使用的是Extjs5.以前也没接触过,就一边学一边做,发现Extjs的东西真是太多了,熟练了用起来也很方便,但是想要真正熟练并不容易.做项目的过程中遇到了很多问题,觉得不记下来下次遇到了还得想半天,所以准备把过程记录下来,给自己看,也给遇到同样问题的人看看.中间可能会有很多写的不对的地方,希望能帮忙指出. Sencha Cmd是一个命令行工具,可以用来生成脚本框架,并且可以将自己写的脚本进行编译,还可以用来编译自定义主题等等,具体的使用及功能后面会说.先介绍Sench

1、Sencha cmd学习笔记(一) 使你的sencha cmd跑起来

带着Ext JS 5来使用sencha cmd -------------------------------------------------------------------  这个指导通过处理使用 sencha cmd的sencha generate app命令来创建应用程序,本文是以允许一个应用程序来结束的  处理更新一个存在的应用程序来体验Sencha cmd是在本章结束的时候介绍的,首先理解什么是"ideal"和“default”是很重要的,在默认的结构和已经存在的应用

[学习笔记]使你的sencha cmd跑起来

本文地址: http://blog.csdn.net/sushengmiyan/article/details/38313537 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- 翻译来源  Sencha Cmd官方网站: http://w

Ext Sencha Cmd 6 环境安装

Sencha Cmd安装笔记 在使用前端框架ExtJs前,需对其环境加以部署,对自己的安装过程加以记录. 建议大家在安装时,最好使用VPN,个中缘由,生在跳槽的程序袁应该都懂吧.不然ruby相关命令执行时,会提示相关包无法下载. Sencha Cmd下载地址:https://www.sencha.com/products/extjs/cmd-download/ Sencha Cmd 6官网地址:http://docs.sencha.com/cmd/6.x/ Sencha Cmd 6相关细节的地址

ExtJS 5.0版本问题+Sencha cmd

ExtJS 5.0版本官方网站给的图表例子,以散点图作说明: Ext.create('Ext.Container', { //renderTo: Ext.getBody(), width: 600, height: 400, layout: 'fit', items: { xtype: 'cartesian', store: { fields: ['name', 'data1', 'data2', 'data3', 'data4', 'data5'], data: [ {'name':'metr

初探 Ext JS 6(sencha touch/ext升级版)

Sencha Touch 现在已全面升级至Ext Js 6,那么我们如何使用他们呢? 首先去官网下载最新的sdk和帮助文档 sdk下载地址:https://www.sencha.com/products/extjs/evaluate/ 如图,这个是试用版下载地址,试用版和正版的区别大概就是试用版有试用标记水印吧,大概是吧. 官方api下载地址:http://docs.sencha.com/extjs/6.0/ 这个就是官方的在线api了,想要下载就把鼠标移动到左上角的Ext JS Guides上

【翻译】探究Ext JS 5和Sencha Touch的布局系统

原文:Exploring the Layout System in Ext JS 5 and Sencha Touch 布局系统是Sencha框架中最强大和最有特色的一个部分. 布局要处理应用程序中每一个组件的尺寸和位置.在Ext JS和Sencha Touch直接有很多相似之处.尤其是如今Ext JS 5開始支持平板更是如此.以下让我们来探讨一下布局系统是怎样跨域Sencha框架进行工作的. 布局简史 最主要的HTML一直都缺乏一个严格定义的布局系统. 很多年来,因为CSS实现的差距.开发跨浏

[extjs5学习笔记]第三十八节 sencha CMD 6.0.0.220版本安装

本文地址:http://blog.csdn.net/sushengmiyan/article/details/46740381 简介 sencha cmd 6安装过程不需要UAC控制了对于widnows来说,对于mac来说是启动权限,之前的版本,我们比较麻烦的事情是需要下载正确的ruby版本才可以使用cmd,现在6.0版本之后,就不需要单独安装ruby了,新版取消了对ruby的依赖.新版cmd增加了对jre的默认安装,选择下载包的时候,可以直接下载带有jre的安装包,这样就不需要再单独安装jre