首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

构建 Ext JS 扩展和插件(1)

构建 Ext JS 扩展和插件(1)

简介Ext JS 是一个含有大量特性的综合的 JavaScript 框架,包括跨浏览器兼容的 JavaScript 帮助工具,用于 DOM 遍历和操作,以及数据对象存储。它也处理 Ajax 和直接远程 web 访问,涵盖了 UI 控件和小部件、图和表、以及一个功能强大的数据网格控件,还有很多很多...令人印象深刻。
当使用 Ext JS,或者需要 JavaScript 库或框架开发应用程序时,您可以确定您将需要一些功能,这些功能可能不是开箱即用的,或者不能以您想要的方式运行。谢天谢地,Ext JS 包含一个功能强大的类和组件生态系统,可以轻松地扩展现有特性或者完全构建新组件。在本文中,我们将探讨这个可扩展性,特别是扩展概念和插件。您将了解每个概念的含义以及它们之间的不同。然后,您将学习如何构建您自己的扩展和插件,以及如何追溯现有插件(其他开发人员构建的)的来源,将其用于您的应用程序中,这样就避免了重复性的工作。  
什么是扩展? Ext JS 的扩展是从类或者子类衍生出来的,为支持现有 Ext JS 类包含附加特性而设计的。在使用一个具体组件时,如果您经常需要提供这些参数,扩展基本上和 “预配置类” 一样有用,预配置类本质上是为一个已有的类配置提供一组默认值。例如,您的应用程序通过 Ext.Window 类可以使用一系列弹出窗口,而这些窗口的宽度和长度总是相同的。与其每次都使用 Ext.Window 指定长度和宽度值,不如创建一个含有预配置大小属性的 Ext.Window 扩展。这不仅使您避免了一遍又一遍的重复编写相同的代码,也使您的应用程序更易于维护。如果您需要修改您应用程序弹出窗口的默认大小,您只需要在您代码中的一个地方进行修改,不需要在几个不同位置修改。
预配置类是最基本的扩展类型。除了为类中现有属性提供值,子类也可以添加父类中不包含的新属性和方法(就是说,类是被子类化或者衍生的)
如果您对面向对象编程语言基本原理比较熟悉,您就知道当一个对象被实例化时,类构造函数被自动调用。该函数通常执行一些初始化例行程序,比如,设置类属性的默认值。默认情况下,当您创建一个子类时,它的构造函数只调用其父类的构造函数。然而,通过为子类创建一个构造函数,您可以重写父类构造函数,执行面向子类的功能(例如,设置被子类添加的默认值属性)。Ext 使这一操作非常简单,确保您可以轻松地从子类构造函数调用父类或超级类的构造函数,这样您不需要将父类构造函数的代码添加到子类构造函数。
父类中的重写方法不仅局限于构造函数。您也可以在子类中重写规则函数,从子类中调用重写的父类函数。
什么是插件?插件是用于向已有组件提供附加功能的类。插件的使用并不是直接初始化插件类的一个对象,而是使用该组件的 “plugins” 配置选项将插件附加到这个组件上。使用插件的一个主要优势是,插件不仅可以被附加的组件所使用,也可以被所有从该组件衍生的子类所使用。
在 Ext JS 中使用组件的一个特点就是,多个插件可以被附加到一个组件上,根据需要提供附加功能。这意味着附加功能可以被分解,且仅在需要时使用,来提高应用程序的性能。当然,插件应该以一种与其他插件不冲突的方式写入,否则它们将不能在一个插件中同时使用。            
扩展和插件之间的区别首先,在 Ext JS 中很难分辨扩展和插件之间的不同,尤其是考虑到它们在使用时的相似性。无论如何,它们都向 Ext JS 类提供扩展功能。主要不同之处是它们的编写方式。
Ext JS 扩展是作为一个现有类的子类编写的,它们可以提供附加属性或函数,或者甚至可以通过重写构造函数和其他函数来修改父类的行为。要使用一个扩展,您应该直接创建一个扩展子类对象,然后使用、添加、或者重写特性到父类(它从其中衍生的)。扩展最好在您需要改变一个已有 Ext JS 功能或特性的核心功能时,或者在您想要构建一个全新的组件时使用。
Ext JS 插件是作为类编写的,总是有一个 init 函数。不像扩展,您不需要直接创建一个插件类对象,但是您要使用组件(它所附加的)来注册您的插件。然后,在插件中定义的选项和函数将可被组件本身所用。插件最好在您需要向一个组件添加特性时使用。因为扩展同它的所衍生的父类是紧密耦合的,当您想要您的附加物易于分离以及多个组件和衍生组件同步操作时,插件也提出了一个可行的备用方案。插件必须被附加在一个现有组件中,因为它通常不适合从零开始构建新组件。
返回列表