博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EXTJS4.0的改变
阅读量:6121 次
发布时间:2019-06-21

本文共 1691 字,大约阅读时间需要 5 分钟。

兼容性

ExtJS4最终会提供一个兼容ExtJS 3的解决方案。
沙箱模式
可是使用alias来为组件添加别名,类似以前的Ext.reg,不过alias会用不同的类别区分开来,例如,widget.xxxxx和feature.xxxxx是不一样的,虽然它们都是用alias来定义的,但是类别完全不同。
包和命名空间的改变
现在的ExtJS不再使用混乱的分包机制(其实以前的感觉更加直白),例如以前的Window,包名是Ext.Window,但是现在则是 Ext.window.Window,Ext.window包下还包括了Ext.window.MessageBox等。SplitButton则是 Ext.button.Split。
创建新的对象
现在ExtJS使用Ext.define函数来创建组件类,该函数还能实现自动加载JS类(uses属性,需设置Ext.Loader为开启详见下文,看不懂看API),它会自动的完成以前的ns(namespace)功能。例如下面

普通浏览 复制代码
  1. Ext.ns(
    "Foo.bar");    Foo.bar = Ext.extend(Ext.util.Observable,{          
    //your code here  });  Ext.reg("foobar",Foo.bar); 

所以现在创建一个组件应该是这样的:

普通浏览 复制代码
  1. Ext.define(
    "Foo.bar",{          extend : 
    "xxxxxx",          alias : 
    "widget.foobar"          
    //your code here  }); 

现在ExtJS不再使用new关键字(当然你想用也没关系),而是推荐使用Ext.create函数来解决这个问题,例如以往我们创建一个组件的代码是

普通浏览 复制代码
  1.     
    var win = 
    new Ext.Window({              
    //some options      });  

而现在则是

普通浏览 复制代码
  1. var win = Ext.create(
    "Ext.window.Window",{          
    //some options  }); 

新的类加载方法--Class Loading
现在ExtJS可以动态加载JS文件(类)了,新的Ext.Loader类和一些其它的方法可以完成分别加载所需的JS文件,例如Ext.Loader里的setPath、require等方法函数可以做到动态加载。
如果要使用这个功能,你首先得启用它:

普通浏览 复制代码
  1. Ext.Loader.setConfig({        enabled: 
    true,        paths: {            
    'My'
    'my_own_path'        }  });

path的意思是,当前引用这个JS的文件同级的my_own_path目录被命名为My,所以以后该目录下的所有类名为My.xxxx的类都能被动态加载。
例如以下文件目录:
a45834ae-7c8f-3a0a-ad71-c68e50eb4c30.png
在定义的时候就是:

普通浏览 复制代码
  1.     Ext.Loader.setConfig({            enabled: 
    true,            paths: {                
    'NS'
    'app'            }      });  

app/person文件夹中的类名为LKPerson的定义代码为

普通浏览 复制代码
  1.     Ext.define(
    "NS.person.LKPerson", {          extend : 
    "Ext.panel.Panel",              alias : 
    "widget.lkperson",
    // 当然,这个属性不是必须 的          border : false,              initComponent : function() {                      this.callParent(arguments);//这个arguments你懂,不懂 Google              }      })  

 

来源:网络

注意一点的就是,NS.person.LKPerson中的LKPerson就是文件名称(换句话说文件名必须是LKPerson且必须在person目录下)

转载于:https://www.cnblogs.com/zengsong-restService/archive/2012/05/14/2499735.html

你可能感兴趣的文章
01月09日 四周二次
查看>>
计算机网络(2)
查看>>
14.4-14.5 NFS的exportfs命令,NFS客户端问题
查看>>
大型网站架构之千万PV之RabbitMQ
查看>>
一:Linux 虚拟机的安装 二:Linux 挂载iso文件 三:Linux yum的搭载
查看>>
Docker设置固定ip地址
查看>>
linux ftp
查看>>
LVM逻辑卷管理
查看>>
Docker image管理基础
查看>>
Python语言基础之计时,pickle,列表解析
查看>>
python3-正则表达式
查看>>
jdk1.7hashMap源码分析
查看>>
ROCKET 数据可视化可以如此简单
查看>>
秒杀系统流量削峰这事应该怎么做?
查看>>
如何使用PDF编辑工具给PDF文件添加背景
查看>>
Keepalived
查看>>
PDA这个要按盘点方式和要求
查看>>
蛋花花APP,APP开发这几点你要注意了
查看>>
mysql5.6复制新特性
查看>>
alpha、beta、rc各版本区别
查看>>