本人软件工程师一名,从事企业应用的前后台开发,因为最近项目上涉及到extJs,之前从没用到过,所以接下来开始学习ext,结合项目总结一些常用的组件,本文为第一篇,从认识extJs开始!
什么是Ext JS
ExtJS的前身是YUI(Yahoo User Interface)。经过不断的发展与改进,ExtJS现在已经成功发布到了ExtJS 6版本,是一套目前最完整和最成熟的javascript基础库之一,利用ExtJS构建的WEB应用具有与桌面程序一样的标准用户界面和操作方式,并能够跨不同的浏览器平台使用。
就目前的市场趋势,现在用户对体验的要求越来越高。涌现出很多优秀的前台javascript框架,如Prototype、JQuery、ExtJS等等,ExtJS无疑是其中优秀的解决方案之一。它能够帮助开发者快速实现良好的用户界面开发,在加上ExtJS又是开源的,所以ExtJS的生命力极强,作为web开发人员来说,我们需要掌握这个优秀的技术帮助我们开发。比较适合我们这种web开发,前后端都得做,不想写css,但又逃脱不了页面的程序员,哈哈!
历史
Ext JS基于MVC / MVVM架构。 最新版本的Ext JS 6是一个单一的平台,可以用于桌面和移动应用程序,而不需要为不同的平台提供不同的代码。
Ext JS 1.1
Ext JS的第一个版本是由Jack Slocum在2006年开发的。它是一组实用程序类,它是YUI的扩展。 他将该库命名为YUI-ext。
Ext JS 2.0
Ext JS 2.0版于2007年发布。此版本具有用于桌面应用程序的新API文档,但功能有限。 此版本与以前版本的Ext JS没有向后兼容性。
Ext JS 3.0
Ext JS版本3.0是在2009年发布的。这个版本添加了新的功能作为图表和列表视图,但是以速度为代价。 它向后兼容2.0版本。
Ext JS 4.0
Ext JS 3发布后,Ext JS的开发人员面临着提高速度的主要挑战。 Ext JS 4.0版本发布于2011年。它具有完整的修订结构,其后是MVC架构和一个快速的应用程序。
Ext JS 5.0
Ext JS版本5.0是在2014年发布的。这个版本的主要变化是将MVC架构改为MVVM架构。 它包括在启用触摸的设备上构建桌面应用程序的功能,双向数据绑定,响应式布局和更多功能。
Ext JS 6.0
Ext JS 6合并了Ext JS(用于桌面应用程序)和sencha touch(用于移动应用程序)框架。
特征
这些是Ext JS的突出特性
- 可定制的UI小部件与丰富的UI集合,如网格,枢轴网格,表单,图表,树木。
- 新版本与旧版本的代码兼容性。
- 灵活的布局管理器有助于组织跨多个浏览器,设备和屏幕大小的数据和内容显示。
- 高级数据包将UI小部件与数据层分离。 数据包允许客户端使用高度功能的模型收集数据,这些模型支持排序和过滤等功能。
- 它是协议不可知的,并且可以从任何后端源访问数据。
- 可定制的主题Ext JS窗口小部件提供了跨平台一致的多个现成主题。
优点
Ext JS是业务级Web应用程序开发的领先标准。 Ext JS提供了为桌面和平板电脑构建强大应用程序所需的工具。
- 简化针对现代和传统浏览器的跨平台开发,跨桌面,平板电脑和智能手机。
- 通过IDE插件集成到企业开发环境中,提高开发团队的生产力。
- 降低Web应用程序开发的成本。
- 授权团队创建具有吸引力的用户体验的应用程序。
- 它有一组小部件使UI强大和容易。
- 它遵循MVC架构这样高度可读的代码
ExtJS的开发包
要开始Ext之旅的第一步就是要获得开发包,我们可以从官方网站里进行下载: http://www.sencha.com/products/extjs/download
解压缩文件夹,你会发现各种JavaScript和CSS文件,你将包括在我们的应用程序。 主要包括以下文件:
包结构说明:
builds目录为ExtJS压缩后的代码
docs目录为ExtJS的文档
examples目录中是官方的演示示例
locale是多国语言的资源文件,其中ext-lang-zh_CN.js是简体中文
overview是ExtJS的功能概述
packages中是ExtJS各部分功能的打包文件
resource中书ExtJS要用到的图片文件与样式表文件
src目录是未压缩的源码
bootstrap.js是ExtJS库的引导文件,通过参数可以自动切换ext-all.js和ext-debug.js
ext-all.js文件是ExtJS的核心库,是必须要引入的
ext-all-debug.js文件是-all.extjs的调试版,在调试的时候可能需要使用
spket-1.6.23插件下载
ExtJS的基本组件
Ext.Viewport : 可视区域,底层容器,容纳panel
Ext.Window : 弹出窗口,容纳panel
Ext.Panel : 面板,容纳组件的容器,也可以容纳panel
Ext.form.FormPanel : 表单面板,继承自Panel并增加了一些表单的特性
Ext.form.TextField : 文本框
Ext.Button : 按钮
Ext.form.NumberField : 数字输入框,提供自动键击过滤和数字校验, 继承自TextField
Ext.form.DateField : 日期选择框
Ext.form.ComboBox : 下拉列表
Ext.form.RadioGroup : 单选按钮组
Ext.form.CheckboxGroup : 复选框组
Ext.grid.GridPanel : 列表面板,继承自panel用于展示列表数据
Ext.grid.EditorGridPanel:可编辑列表面板
ExtJS的基本布局
BorderLayout 东南西北中
FitLayout 填充父容器
FormLayout FormPanel的默认布局方式,
accordionLayout 手风琴效果布局
anchorLayout 单列多行布局
ColumnLayout 列布局,单行多列
TableLayout 表格布局
VboxLayout 纵向盒子布局
hboxLayout 横向盒子布局