extjs6学习(3)

2019-03-09 11:58

3. initComponent : function() { 4. //do something 5. },

6. constructor : function() { 7. //do something 8. } 9. });

一般状况上,加上 xtype 的定义,类似:

(在旧的Extjs 版本中使用 Ext.extend 实现扩展)

那么这两种用法究竟该如何使用?两者的使用又有什么差别呢?

initComponent 和 constructor区别于联系

1. initComponent这个方法是在Ext.Component的构造函数(constructor)中调用的【注意

2者的调用关系】,只有直接或间接继承自 Ext.Component的

类才会在constructor里调用initComponent方法

看一下 Ext.AbstractComponent的源码文件 src/AbstractComponent.js 在 constructor方法中调用了initComponent 2.

1)自定义类中的 initComponent 函数中必须调用 callParent();否则调用者无法初始化这个对象

2)针对button 这样的扩展组件来说,自定义类中的 constructor ,需要调用callParent( arguments);否则调用者无法初始化这个对象

[html] view plaincopy

1. this.callParent(arguments);

这里的arguments 是需要的。

(在Extjs 4 之前的版本中,可能会看到比较多的XXX.superclass.constructor.call 写法)

sencha 的官网中有一篇针对这两个区别的讨论:

http://www.sencha.com/forum/showthread.php?47210-constructor-Vs-initComponent

不过语法是基于Extjs 3 来讨论的,笔者觉得作用不是很大。

就笔者实际的开发经验来看,基本上使用initComponent 就可以达到开发的要求了。

9. 构造函数

http://blog.csdn.net/kaoa000/article/details/39337803

定义类的方法:define

对于Ext4.X版本来说,采用了新定义类的define方法,而不是延续旧版本的extend方法,那么对于定义一个新的类。我们来了解下define的使用。 Ext.define(classname,properties,callback); - classname:要定义的新类的类名 - properties:新类的配置对象

- callback:回调函数,当类创建完后执行该函数

对于Ext定义一个新的类,那么我们可以想象到,既然是利用Ext.define去创建类,那么创建的类一定是Ext所特有的类,不同于传统的javascript创建一个类,也就是说我们要对于define方法的第二个参数properties配置项进行配置,需要找到Ext对于类支持的API并进行配置

[javascript] view plaincopy

1. Ext.onReady(function(){ 2.

3. //在Ext中如何定义一个类:Ext.define(className,properties,callback) 4. Ext.define('Person',{

5. //这里是是对于这个类的一些配置信息(看Ext.Class的configs) 6. //config属性就是配置当前类的属性内容,并且会加上get和set方法 7. config:{ 8. name:'z3', 9. age:20 10. },

11. //自己定义的方法 12. say:function(){

13. alert('我是方法。。。'); 14. },

15. //给当前定义的类加一个构造器,目的就是为了初始化信息 16. constructor:function(config){ 17. var me = this;

18. for(var attr in config){ //循环显示传递进来的参数 19. alert(attr + ':' + config[attr]); 20. }

21. me.initConfig(config); //真正的初始化传递进来参数 22. } 23. }); 24.

25. var p = new Person(); 26. // alert(p.name); 27. // alert(p.age); 28. alert(p.getName()); 29. p.say(); 30.

31. var p1 = new Person({name:'li4',age:25}); 32. // alert(p.name); 33. // alert(p.age); 34. alert(p1.getName()); 35. p1.say(); 36.

37. //Ext.create 实例化一个对象

38. var p2 = Ext.create('Person',{ 39. name:'wang5', 40. age:40 41. });

42. alert(p2.getName()); 43. p2.say(); 44. });

对于configs: - extend:用于继承 - alias:类的别名

- alternateClassName:备用名,与alias差不多

- requires:需要使用到的类名数组,在动态加载时会根据该属性去下载类,注意需要的类是在当前类之前被加载

- uses:与requires类似但是被引用的类可以在该类之后才加载

- constructor:构造器属性,一般用来初始化类的配置和调用其父类的方法 - mixins:混入属性,多继承

- config:定义类的配置项,会把config里的每个属性加上get和set方法 - statics:定义静态方法,属性不能被子类继承

- inheritableStatics:与statics类似,但是其属性可被子类继承 - singleton:设置该类为单件模式

http://www.cnblogs.com/youring2/archive/2013/08/22/3274135.html

使用Ext.define自定义类

10. 操作dom对象的方法

11. 获取父子容器元素方法

http://chun521521.iteye.com/blog/2067165

纯自用方便

1.当前对象的父对象(上级对象) this.ownerCt:

2.当前对象的下一个相邻的对象 this.nextSibling();

3.当前对象的上一个相邻的对象 this.previousSibling(); 4.当前容器中的第一个子对象 this.get(0); this.items.first();

5.当前容器的最后一个子对象 this.items.last();

6.查找当前对象的所有上级匹配的容器 this.findParentByType(String xtype) 7.查找当前对象的所有下级匹配的组件 this.findByType(String xtype)

12. 启动顺序

在classic.json文件中,已经把app.js、bootstrap.css等文件加进去了,所以,在index.html文件中,只需要加载bootstrap.js文件就行了。

Index.htmlBootstrap.jsClassic.json or modern.json(所有类定义含app.js)执行app.js(创建窗口)->application.js


extjs6学习(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:素质拓展活动策划书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: