在这片文章中,我们主要看一下EXTJS4中对类的一些方面的改进,比如说类的定义等等。以及在这些改进中,比起之前版本的一些使用上的好处。或者说改进了之前的一些缺陷。首先我们来认识一下,EXTJS4中在类的使用上做了什么改进。
(一)全新的类系统
1、EXTJS4中所有的类都可以使用字符串引用。例如我们来看一下,EXTJS3.X中和EXTJS4中定义的区别。
//Extjs3.x中定义类的方法
myApp.myClass=Ext.extend(Ext.Window,{
initComponent:function(){
//code;
myApp.myClass.superclass.initComponent.apply(this,arguments);
}
});
在上述的代码中,我们可以看到,这是我们在使用Extjs3.x中最常用的定义类的方法。在正常使用的情况下,这样的定义方式,是没有什么问题的。但是,在特殊的情况下,这样的定义方式,还存在一定的缺陷。比如说,我们myApp的包名没有定义。这个时候,我们在使用时就会出现错误,比如说,我们的Ext.Window类还没有导入到系统中,这样也会出现错误,这样就会导致我们的类创建不成功。当时,在我们Extjs4中,全新的定义类的方式,都可以避免上边的一些错误,下边我们来看一下EXTJS4中的类的定义方式:
//EXTJS4中定义类的方式
Ext.define("myApp.myClass",{
extend:"Ext.Window",
initComponent:function(){
//code;
myApp.myClass.superclass.initComponent.apply(this,arguments);
}
});
Extjs4中所有的类的引用都可以用字符串。这样,当我们在引用一个类时,EXTJS首先根据字符串去匹配相应的类,匹配到相应的类后,再去执行下一步操作。这样就会避免,因为导入顺序或者未定义包名。而出现的错误问题。
2、在EXTJS4中,为了使类的扩展更为灵活,在4中还增加了mixins(混入)的功能。比如说,我们类(People),(CanWriteJava),(CanWriteC#),(CanWriteC++)。我们有一个学生类(Student)继承自(People),该学生同时会使用java、.net、c++等语言。这个时候,我们就需要使用到mixins(混入)的特性。代码如下:
//People类的定义
Ext.define("People",{});
//CanWriteJava类的定义
Ext.define("CanWriteJava",{
codeJava:function(){
//code;
}
});
//CanWriteC#类的定义
Ext.define("CanWriteC#",{
codeC#:function(){
//code;
}
});
//CanWriteC++类的定义
Ext.define("CanWriteC++",{
codeC++:function(){
//code;
}
});
//Student类的定义
Ext.define("Student",{
extend:"People",
mixins:{
java:"CanWriteJava",
net:"CanWriteC#",
c:"CanWriteC++"
}
});
经过上述的定义,Student中就可以使用(CanWriteJava、CanWriteC#、CanWriteC++)中的特性了。例如:
var student=new Student();student.codeJava();
3、在Extjs4中,当我们定义类中的属性时。Extjs会自动为我们创建其属性的getter和setter方法。而不用我们手动编写getter和setter方法。代码如下:
Ext.define("myClass",{
config:{
name:"",
address:"",
telephone:""
}
});
var cls=new myClass();
cls.setName("zhangsan");//extjs自动创建的setName方法
cls.getName();//extjs自动创建的getName方法
(二)动态加载
EXTJS4中为我们增加了另一个新的特性就是动态加载,我们可以使用动态加载,在我们需要时,才导入,这样大大节省了很多资源。比如说,我们想使用Window这个类,但是。我们又不确保,这个类当前是否已经引用到该系统中,我们就可以使用如下写法:
Ext.require("Ext.Window",function(){
//导入成功后,执行该方法体
});
如果,我们想导入我们自己定义的类,动态引用自己编写的js文件,我们需要经过如下步骤:
1、
//开启动态加载阀值
Ext.Loader.setConfig({
enabled: true
});
2、
//设置动态加载js的路径
Ext.Loader.setPath("test", "JS/test");
3、
//导入类文件
Ext.require(["test.window.mywindow","test.login.mylogin"]);
4、
//使用导入的类文件
new test.window.mywindow().show();
以下是工程中的文件目录图:
红色区域为自定义的js目录结构,注意与第三个步骤的名称想匹配。
以上就是extjs4中的类系统和动态加载的特性。有什么不妥之处,还请大家多多交流
相关推荐
ExtJS 4增加了内置的动画支持,可以轻松地为用户界面添加平滑的过渡效果和动态行为,提升了用户体验。 6. **事件系统**: 事件处理机制也有所改进,现在支持事件委托,提高了性能,减少了事件监听器的使用。 7. ...
总结来说,ExtJS4通过其新类库特性及JS新语法扩展,不仅提升了JavaScript的面向对象编程能力,还增强了代码的可读性和可维护性。动态加载机制降低了应用的初始化时间,而命名规范和类系统的改进则促进了代码的标准化...
动态加载菜单是ExtJS中的一个关键特性,它允许在用户交互过程中动态地创建、修改和加载菜单项,提供了更灵活的用户界面设计。在“Extjs动态加载菜单”这个主题中,我们将深入探讨这一功能的实现方式以及相关技术。 ...
【ExtJs4新类库特性详解及JS新语法扩展】 ExtJS4是一个强大的JavaScript库,专为构建富客户端Web应用程序而设计。它引入了一系列的新特性,优化了JS语法,并提供了强大的类系统,使得JavaScript开发更加规范和高效...
标题 "ExtJS5 整合Spring4之二" 暗示了这是一个关于将流行的JavaScript框架ExtJS5与Java后端框架Spring4集成的主题。在Web应用开发中,这种集成允许开发者利用ExtJS5的富客户端功能和Spring4的强大后端服务。下面将...
### ExtJS4之初体验 #### 一、准备工作 在开始使用ExtJS4进行开发之前,我们需要做一些基础的准备工作,确保开发环境已经搭建好,并且能够顺利地运行第一个ExtJS4程序。 ##### 1. 浏览器兼容性 ExtJS4支持大部分...
### ExtJS4基础教程知识点 #### 1. ExtJS4开发环境搭建 ExtJS4是使用JavaScript进行开发的框架,专门用于构建富互联网应用...通过上述知识点的学习和实践,可以为接下来深入学习ExtJS4的其它高级特性打下坚实的基础。
在本文中,我们将深入探讨ExtJS4这一版本的重要特性、改进以及它如何扩展了先前版本的功能。 首先,ExtJS4在组件化方面有了显著提升。在之前的版本中,组件系统就已经是其核心优势,而ExtJS4进一步优化了这一系统,...
4. **高级表格和网格**:EXTJS4的GridPanel组件提供强大的数据展示和操作功能,支持分页、排序、过滤、编辑等功能,同时可与Ext.data.Model进行紧密集成,实现数据的动态加载和保存。 5. **图表和图形**:EXTJS4...
6. **Data Binding(数据绑定)**:ExtJS4的一个重要特性,允许UI元素与后台数据模型实时同步,当选择新的图片时,ImageViewer会自动更新以显示新图片。 7. **Events(事件)**:通过监听用户的交互行为,如点击...
5. **Ajax支持**:EXTJS通过Ajax技术实现与服务器的异步通信,实现动态加载和更新数据,提高系统性能。 6. **主题定制**:EXTJS允许开发者自定义主题,以满足企业的视觉风格要求。 在合同管理系统的开发中,EXTJS...
动态加载是ExtJS中的一个重要概念,它允许应用程序按需加载所需的类和资源,从而减少初始页面加载时间,提高用户体验。 在“Extjs4.2 动态加载项目(权限模块)”中,动态加载主要体现在两个方面:一是对代码的懒加载...
动态加载是ExtJS Tree的一个重要特性,它允许根据需要加载节点数据,减少了初次加载时的数据量,提高了用户体验。 动态加载,也称为懒加载(Lazy Loading),是指在用户滚动或展开特定节点时才请求并加载该节点及其...
首先,让我们深入了解一下EXTJS 4树形表格组件的特性: 1. **层级结构**:树形表格组件允许你展示具有层级关系的数据,每个节点都可以有子节点,形成一个多级的树状结构。这在展现组织结构、文件系统或分类数据时...
extJS4 MVC demo项目入门涉及的是前端开发领域的技术要点,主要介绍了extJS4框架中的MVC(Model-View-Controller)模式在实际开发项目中的应用方法,并着重讲述了如何实现前端资源的按需加载和动态加载。在了解这些...
在这个系统中,尽管使用的是静态数据模拟,但你可以看到如何设置数据源(DataSource),并与Grid或Form进行数据绑定,实现数据的动态加载、增删改查操作。此外,ExtJs3还提供了数据代理(Data Proxy)和数据模型...
ExtJS4的Store组件可以方便地处理这种数据加载和提交,它与Model类一起,定义了数据字段和行为,使数据操作更加规范和易于管理。 在"Ext4_SMS"这个压缩包中,可能包含了以下文件和目录: 1. `app.js`: 应用主入口...
6. **图表和图形**:EXTJS 3.2引入了新的图表组件,支持各种数据可视化,如线图、柱状图、饼图等,为数据分析和展示提供了强大的工具。 7. **拖放功能**:3.2版本的拖放API更加成熟,支持在组件间自由拖放,方便...
2. **组件系统**:ExtJS的核心是其组件化的设计,包括各种UI组件如表格、面板、窗口、表单等。6.2版本可能对这些组件进行了性能优化和新功能的添加,例如新的布局管理器、增强的表格功能等。 3. **数据绑定**:...
EXTJS信息系统显然是利用EXTJS框架构建的一个信息管理系统。 在描述中提到了“登陆名字23 密码a”,这可能是指系统有一个预设的用户名和密码,供测试或演示使用。在实际部署中,这样的硬编码凭证是不安全的,应当...