EXTJS学习笔记

sencha which

set PATH=%PATH%;C:\Sencha\Cmd\6.0.0.92

sencha generate app --ext MyApp ./myapp
将会创建名为 MyApp 的 Ext JS 应用,应用所有的文件都放在
当前目录下名为 myapp 的文件夹。

extjs

1.基本结构:

Ext.define(‘Car’,{
name:null,
constructor:function(name){
if(name){
this.name=name;
}
},
start:function(){
alert(‘Car started’);
}
});

2.继承: extend

Ext.define(‘ElectricCar’,{
extend:‘Car’,
start:function(){
alert(“Electric car started”);
}

})

3.重写:override

Ext.define(‘My.ux.field.Text’,{
override:‘Ext.form.field.Text’,
setValue:function(val){
this.callParent([‘In override’]);
return this;
}
})

4.总结

extend 会创建一个新的类,并继承父类的属性和方法,你也可
以重写父类的方法。而 override 并不会创建一个新的类,而是修改这个被重
写的父类。

5.单例

singleton:true,

6.创建对象 Ext.create new(不推荐使用)

Ext.create(Class,Options);

var myCar = Ext.create(‘ElectricCar’,{name:‘MyElectricCar’});

7.关闭Ext.Loader

Ext.Loader.setConfig({
enabled:true
});

8.onReady

这个函数在页面加载完成后调用
Ext.onReady(function(){
new Ext.Component({
renderTo:document.body,
html:‘DOM ready!’
});
});

9.别名 alias xtype

alias:‘widget.panel’

你也可以使用 xtype 为这个类给定一个别名。这个 xtype 是非常有用的,当
你以指定 xtype 的方式应用部件时,并不会创建实例,而是在真正调用展示的
时候才会创建这个类的实例。

10.widget(部件)

用别名创建实例
Ext.widget(‘panel’,{}
renderTo:Ext.betBody(),
title:‘panel’
);
等价于Ext.create();

11.getClass

如果创建的实例是用 Ext.define 定义的,那么返回这个给定对象的类,否则
返回 null:
var button = new Ext.Button();
Ext.getClass(button);

12.getClassName

通过它的应用或实例返回类的名称
Ext.getClassName(Ext.Button);

13.Ext.Base

这是所有Ext类的基础.所有的Ext类都继承自Ext.Base.该类所有的原型和静态成员都会传递给它继承的类.

14.Ext.class

这是一个低级别的工厂类,用于通过Ext.ClassManager定义一个类.所以不应该在你的代码中直接访问,你应该使用Ext.difine

15.Ext.ClassManager

它管理所有的类同时处理类反射.通常通过下面几个方法访问:
define create widget getClass getClassName

16.Ext.loader

用于动态的加载依赖

Ext.require([‘widget.’, 'layout.’, ‘Ext.data.’);
使用以下语法排除掉不需要的类:
Ext.exclude('Ext.data.
’).require(’*’);

requires 属性加载需要的类时,当前类初始化之前被加载。
uses 属性加载需要的类时,当前类初始化之后被加载。
singleton:true 属性当前类初始化时,该实例是一个单例对象。

17.Events(事件)
18.Adding listeners(为类添加监听)

Ext.create(‘Ext.Button’,{
renderTo:Ext.getBody(),
listeners:{
click:function(){
Ext.Msg.alert(‘Button clicked!’);
},
mouseout:function(){
//Do something
}
}
});

19.Removing listeners(删除事件监听)

var HandleClick=function(){
Ext.Msg.alert(“my buttion clicked!”);
}
Ext.create(‘Ext.Button’,{
listeners:{
click:HandleClick
}
});

button.un(‘click’,HandleClick);

20.页面DOM元素的事件处理

var div=Ext.get(‘mydiv’);
div.on(‘click’,function(e,t,e0pts){
//do something
});

21.访问DOM

get query select

Ext.get 根据DOM元素的Id检索获取并封装为Ext.dom.Element对象
var mydiv = Ext.get(‘myDivId’);
Ext.query 基于传入的CSS选择器,从给定的根节点开始查找,返回一个元素数组
var someNodes = Ext.query(’.oddRow’, myCustomComponent.getEl().dom);
Ext.select 给出一些 CSS/XPath 选择器,Ext.select 方法返回一个 CompositeElement类型的对象,代表一个元素的集合。
var rows = Ext.select(‘div,row’);
row rows.setWidth(100);

22.多重选择器

Ext.select(‘div.row, span.title’); //匹配所有的 class 用 .row 的 div
元素,和匹配所有 class 用 .title 的 span 元素

当你使用 select ,它默认取 HTML body 作为根并从默认的 body 开始检索整
个 DOM 树。你可以通过制定一个根元素来避免这种情况,这样它将只搜索给定
的根的子节点。
Ext.get(‘myEl’).select(‘div.row’);

23.链式选择器

下列的查询方式会匹配 class 为 row 并且 title 属性值为 bar 的 div ,这
个 div 属于其父元素的首个子元素:
Ext.select(‘div.row[title=bar]:first’)

24.Ext.ComponentQuery 可以用ID,xtype和属性查找一个组件

下列查询将返回所有的 xtype 为 button 的组件:
Ext.ComponentQuery.query(‘button’);
得到一个 id 为 foo 的组件,用以下代码:
Ext.ComponentQuery.query(’#foo’);
用嵌套选择器
Ext.ComponentQuery.query(‘formpanel numberfield’); // 这里获取 xtype
为 frompanel 下面的 xtype 为 numberfield 的组件

25.组件

例如 button 和 label,所有的组件都派生自
Ext.Component 类,它提供支持创建,重绘,渲染和处理组件。
所有的组件都有一个属性叫做 xtype 。它是非常有用的,它用在当你不想马上
实例化这个组件时,而是想让这个组件在实际被应用时才创建,就是我们俗称
的懒加载。

26.容器

容器是一个特殊的组件类型,它能够持有其他组件。在 Ext JS 中
Ext.container.Container 类是所有的容器的基础类。

Ext.create(‘Ext.panel.Panel’,{
renderTo:Ext.getBody(),
width:700,
height:400,
items:[{
xtype:‘panel’,
title:‘Panel 1’,
},{
xtype:‘panel’,
title:‘Panel 2’,
height:200,
items:[{
xtype:‘button’,
text:‘Click Me’
}]
},{
xtype:‘panel’,
title:‘Panel 3’,
width:150,
height:100
}
}]
})

27.absolute 绝对布局

这个布局使用 x 和 y 属性来指定组件的绝对定位:

28.accordion 手风琴(可折叠)布局

这个布局展示了在一个时间里只有一个内置的可支持折叠和展开的子级
panel

29.anchor 锚点布局

这个布局使你能够指定子级组件的大小,而这是相对于布局容器的。首先容器
根据指定的锚点规则调整然后所有的子级组件再作调整:

30.border 布局

这个布局允许你为子组件指定一个区域位置,例如 center,north,south,
west 和 east。当你使用 border 布局时,在其内的组件必须有一个指定区域
为 center,如下列代码所示:

31.card 卡片布局

在此布局中,只有一个子组件是可见的,这个组件基本上充满整个容器。卡片
布局一般应用在向导或者 tabs:

32.center 中心布局

这种布局,容器的子组件在中间。在本章中开始介绍布局的部分,我们已经有
一个例子了。

33.column 列布局

用此布局,你可以将容器划分为指定数量的列并指定每列所占的大小。这个例
子也在本章开始介绍布局的部分中可以找到。

34.fit 适配布局

在此布局中,子组件将会自适应容器的尺寸

35.hbox 布局

这种布局与 column 布局几乎是一样的,但是这种布局允许你拉伸列的高度。
这里使用 flex 选项为子组件设置水平的相对值:

36.table 表格布局

这个布局允许你渲染一个表格出来。你可以指定列数和行数,使用 rowspan 和
colspan 创建复杂布局:

37.VBox 布局

这个布局内,子组件是垂直向下一个接一个排列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值