`
2277259257
  • 浏览: 515212 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

EXTJS4新特性之全新的类系统及动态加载

 
阅读更多

在这片文章中,我们主要看一下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();

 

以下是工程中的文件目录图:

 

EXTJS4新特性之全新的类系统及动态加载

 

红色区域为自定义的js目录结构,注意与第三个步骤的名称想匹配。

 

以上就是extjs4中的类系统和动态加载的特性。有什么不妥之处,还请大家多多交流

http://blog.sina.com.cn/s/blog_7778950d0100xm3c.html

分享到:
评论

相关推荐

    extjs4新特性

    ExtJS 4增加了内置的动画支持,可以轻松地为用户界面添加平滑的过渡效果和动态行为,提升了用户体验。 6. **事件系统**: 事件处理机制也有所改进,现在支持事件委托,提高了性能,减少了事件监听器的使用。 7. ...

    ExtJs4新类库特性详解及JS新语法扩展.pdf

    总结来说,ExtJS4通过其新类库特性及JS新语法扩展,不仅提升了JavaScript的面向对象编程能力,还增强了代码的可读性和可维护性。动态加载机制降低了应用的初始化时间,而命名规范和类系统的改进则促进了代码的标准化...

    Extjs动态加载菜单

    动态加载菜单是ExtJS中的一个关键特性,它允许在用户交互过程中动态地创建、修改和加载菜单项,提供了更灵活的用户界面设计。在“Extjs动态加载菜单”这个主题中,我们将深入探讨这一功能的实现方式以及相关技术。 ...

    ExtJs4新类库特性详解及JS新语法扩展.docx

    【ExtJs4新类库特性详解及JS新语法扩展】 ExtJS4是一个强大的JavaScript库,专为构建富客户端Web应用程序而设计。它引入了一系列的新特性,优化了JS语法,并提供了强大的类系统,使得JavaScript开发更加规范和高效...

    ExtJS5 整合Spring4之二

    标题 "ExtJS5 整合Spring4之二" 暗示了这是一个关于将流行的JavaScript框架ExtJS5与Java后端框架Spring4集成的主题。在Web应用开发中,这种集成允许开发者利用ExtJS5的富客户端功能和Spring4的强大后端服务。下面将...

    ExtJS4之初体验

    ### ExtJS4之初体验 #### 一、准备工作 在开始使用ExtJS4进行开发之前,我们需要做一些基础的准备工作,确保开发环境已经搭建好,并且能够顺利地运行第一个ExtJS4程序。 ##### 1. 浏览器兼容性 ExtJS4支持大部分...

    extjs4-教程

    ### ExtJS4基础教程知识点 #### 1. ExtJS4开发环境搭建 ExtJS4是使用JavaScript进行开发的框架,专门用于构建富互联网应用...通过上述知识点的学习和实践,可以为接下来深入学习ExtJS4的其它高级特性打下坚实的基础。

    ExtJs4.rar

    在本文中,我们将深入探讨ExtJS4这一版本的重要特性、改进以及它如何扩展了先前版本的功能。 首先,ExtJS4在组件化方面有了显著提升。在之前的版本中,组件系统就已经是其核心优势,而ExtJS4进一步优化了这一系统,...

    extjs4中文文档

    4. **高级表格和网格**:EXTJS4的GridPanel组件提供强大的数据展示和操作功能,支持分页、排序、过滤、编辑等功能,同时可与Ext.data.Model进行紧密集成,实现数据的动态加载和保存。 5. **图表和图形**:EXTJS4...

    Extjs4 图片浏览器

    6. **Data Binding(数据绑定)**:ExtJS4的一个重要特性,允许UI元素与后台数据模型实时同步,当选择新的图片时,ImageViewer会自动更新以显示新图片。 7. **Events(事件)**:通过监听用户的交互行为,如点击...

    合同管理系统 extjs开发的 让大家一起学习

    5. **Ajax支持**:EXTJS通过Ajax技术实现与服务器的异步通信,实现动态加载和更新数据,提高系统性能。 6. **主题定制**:EXTJS允许开发者自定义主题,以满足企业的视觉风格要求。 在合同管理系统的开发中,EXTJS...

    Extjs4.2 动态加载项目(权限模块)

    动态加载是ExtJS中的一个重要概念,它允许应用程序按需加载所需的类和资源,从而减少初始页面加载时间,提高用户体验。 在“Extjs4.2 动态加载项目(权限模块)”中,动态加载主要体现在两个方面:一是对代码的懒加载...

    动态加载extjs tree

    动态加载是ExtJS Tree的一个重要特性,它允许根据需要加载节点数据,减少了初次加载时的数据量,提高了用户体验。 动态加载,也称为懒加载(Lazy Loading),是指在用户滚动或展开特定节点时才请求并加载该节点及其...

    EXTJS 4 树形表格组件使用示例

    首先,让我们深入了解一下EXTJS 4树形表格组件的特性: 1. **层级结构**:树形表格组件允许你展示具有层级关系的数据,每个节点都可以有子节点,形成一个多级的树状结构。这在展现组织结构、文件系统或分类数据时...

    extJS4 MVC demo项目入门

    extJS4 MVC demo项目入门涉及的是前端开发领域的技术要点,主要介绍了extJS4框架中的MVC(Model-View-Controller)模式在实际开发项目中的应用方法,并着重讲述了如何实现前端资源的按需加载和动态加载。在了解这些...

    ExtJs3 演示系统

    在这个系统中,尽管使用的是静态数据模拟,但你可以看到如何设置数据源(DataSource),并与Grid或Form进行数据绑定,实现数据的动态加载、增删改查操作。此外,ExtJs3还提供了数据代理(Data Proxy)和数据模型...

    ExtJs4做的小程序

    ExtJS4的Store组件可以方便地处理这种数据加载和提交,它与Model类一起,定义了数据字段和行为,使数据操作更加规范和易于管理。 在"Ext4_SMS"这个压缩包中,可能包含了以下文件和目录: 1. `app.js`: 应用主入口...

    extjs最新版 3.2版本

    6. **图表和图形**:EXTJS 3.2引入了新的图表组件,支持各种数据可视化,如线图、柱状图、饼图等,为数据分析和展示提供了强大的工具。 7. **拖放功能**:3.2版本的拖放API更加成熟,支持在组件间自由拖放,方便...

    Extjs6.2最新文档

    2. **组件系统**:ExtJS的核心是其组件化的设计,包括各种UI组件如表格、面板、窗口、表单等。6.2版本可能对这些组件进行了性能优化和新功能的添加,例如新的布局管理器、增强的表格功能等。 3. **数据绑定**:...

    extjs信息系统extjs信息系统

    EXTJS信息系统显然是利用EXTJS框架构建的一个信息管理系统。 在描述中提到了“登陆名字23 密码a”,这可能是指系统有一个预设的用户名和密码,供测试或演示使用。在实际部署中,这样的硬编码凭证是不安全的,应当...

Global site tag (gtag.js) - Google Analytics