Ext JS实战(第2版)分三部分,基于Ext JS 4.0全面介绍如何开发具有原生风格的富桌面Web应用,辅以大量示例帮读者理解其组件和容器。第一部分是基础知识,讲解Ext JS的丰富特性(包括UI部件以及数据存储、模型和代理等支持类)、DOM操作、组件和容器。第二部分全面介绍Ext JS部件的工作原理,内容涵盖Ext JS组件、布局管理器、表单面板、数据存储、网格面板、树形面板、图形图表、直接远程调用和拖放功能。第三部分介绍Ext JS类系统,并基于本书知识用Sencha CMD和Ext JS MVC系统开发应用。此外,第三部分不仅能让你学会Ext JS框架的更高级功能(如定制的扩展、插件,以及类加载器),还能让你掌握构建和管理Web应用的坚实理论。
目录
- 第一部分 Ext JS 4.0入门
- 第1章 功夫在框架外 2
- 1.1 初识Ext JS 2
- 1.1.1 丰富的API文档 3
- 1.1.2 用预制部件快速开发 5
- 1.2 你需要知道的 5
- 1.3 Ext JS部件之旅 5
- 1.3.1 容器和布局初探 7
- 1.3.2 其他容器的运作 8
- 1.3.3 数据绑定视图 9
- 1.3.4 “枝繁叶茂”的树形面板 11
- 1.3.5 表单输入框 12
- 1.3.6 其他部件 14
- 1.4 Ext JS 4.0的新特性 15
- 1.4.1 呀!适配层不见了! 15
- 1.4.2 新的类系统 15
- 1.4.3 数据包 16
- 1.4.4 布局:代码大爆炸 16
- 1.4.5 新停靠系统 17
- 1.4.6 网格面板的改进 17
- 1.4.7 树形面板如今更接近网格面板 18
- 1.4.8 图形和图表 19
- 1.4.9 新的CSS样式架构 19
- 1.4.10 新MVC架构 20
- 1.4.11 捆绑打包工具 20
- 1.5 下载和配置 20
- 1.6 亲手一试 22
- 1.7 小结 24
- 第2章 DOM操作 25
- 2.1 用 Ext JS启动代码 25
- 2.2 用Ext.Element管理DOM元素 27
- 2.2.1 框架的核心 27
- 2.2.2 首次使用Ext.Element 28
- 2.2.3 创建子节点 29
- 2.2.4 删除子节点 32
- 2.2.5 配合Ext.Element使用Ajax 33
- 2.3 使用模板和XTemplate 34
- 2.3.1 使用模板 34
- 2.3.2 用XTemplate执行循环操作 37
- 2.3.3 XTemplate的高阶应用 38
- 2.4 小结 40
- 第3章 组件和容器 41
- 3.1 组件模型 41
- 3.1.1 XType和ComponentManager 42
- 3.1.2 组件渲染 44
- 3.2 组件生命周期 46
- 3.2.1 初始化 46
- 3.2.2 渲染 48
- 3.2.3 销毁 50
- 3.3 容器 51
- 3.3.1 构建一个带子元素的容器 52
- 3.3.2 处理子元素 53
- 3.4 查询组件 54
- 3.5 视口容器 56
- 3.6 小结 57
- 第二部分 Ext JS组件
- 第4章 核心UI组件 60
- 4.1 面板 60
- 4.1.1 构建一个复杂的面板 61
- 4.1.2 添加按钮和工具 63
- 4.1.3 在一个面板上停靠元素 65
- 4.1.4 权重很重要 67
- 4.2 显示窗口对话框 69
- 4.2.1 构建一个窗口 70
- 4.2.2 更多窗口配置 71
- 4.3 消息框 73
- 4.3.1 警告用户 73
- 4.3.2 MessageBox的高阶方法 74
- 4.3.3 显示一个动画式等待对话框 75
- 4.4 组件也可以存活在标签面板中 77
- 4.4.1 构建第一个标签面板 78
- 4.4.2 你应该知道的标签管理方法 80
- 4.5 小结 81
- 第5章 探究布局 82
- 5.1 布局管理器如何工作 82
- 5.1.1 组件布局 82
- 5.1.2 容器布局 83
- 5.2 Auto布局 83
- 5.3 Anchor布局 85
- 5.4 Absolute布局 88
- 5.5 Fit布局 89
- 5.6 Accordion布局 90
- 5.7 Card布局 93
- 5.8 Column布局 95
- 5.9 HBox和VBox布局 97
- 5.10 Table布局 100
- 5.11 Border布局 103
- 5.12 小结 107
- 第6章 Ext JS中的表单 108
- 6.1 基本输入框 108
- 6.1.1 输入框和校验 109
- 6.1.2 密码和文件选择框 111
- 6.1.3 构建多行文本框 112
- 6.1.4 便利的数字输入框 112
- 6.2 用组合框实现提前键入 113
- 6.2.1 构建一个本地组合框 113
- 6.2.2 实现一个远程组合框 115
- 6.2.3 解构组合框 118
- 6.2.4 自定义组合框 118
- 6.3 时间输入框 119
- 6.4 HTML编辑器 120
- 6.4.1 构建第一个HTML编辑器 120
- 6.4.2 处理缺少校验的问题 121
- 6.5 选择日期 121
- 6.6 复选框和单选按钮 122
- 6.7 表单面板 124
- 6.7.1 检视正在构建的内容 125
- 6.7.2 构建字段集 125
- 6.7.3 创建标签面板 128
- 6.8 数据提交和加载 130
- 6.8.1 提交表单的传统方式 130
- 6.8.2 通过Ajax提交数据 130
- 6.8.3 把数据加载到表单中 132
- 6.9 小结 134
- 第7章 数据存储 135
- 7.1 介绍数据存储 135
- 7.1.1 支持类 136
- 7.1.2 数据是如何流动的 137
- 7.1.3 关于数据代理 138
- 7.1.4 模型和读取器 139
- 7.2 读取和保存数据 140
- 7.2.1 读取数组数据 141
- 7.2.2 读取JSON数据 143
- 7.2.3 读取XML数据 145
- 7.3 带写入器的数据存储 146
- 7.3.1 校验模型数据 148
- 7.3.2 同步数据 150
- 7.4 关联数据 151
- 7.5 小结 154
- 第8章 网格面板 155
- 8.1 网格面板简介 155
- 8.2 构建一个简单的网格面板 157
- 8.3 高级网格面板构建 159
- 8.3.1 你在构建什么 159
- 8.3.2 所需的数据存储和模型 159
- 8.3.3 创建列 160
- 8.3.4 配置高级网格面板 161
- 8.3.5 给网格面板配置一个容器 162
- 8.3.6 缓冲滚动分页 164
- 8.3.7 为交互应用事件处理程序 166
- 8.4 在网格面板上编辑数据 168
- 8.4.1 启用编辑插件 169
- 8.4.2 浏览一下你的可编辑网格面板 173
- 8.5 加入CRUD 174
- 8.5.1 添加保存和拒绝逻辑 174
- 8.5.2 保存和拒绝修改 175
- 8.5.3 添加创建和删除功能 176
- 8.5.4 使用创建和删除 178
- 8.6 小结 180
- 第9章 深入探究树形面板 181
- 9.1 树形面板理论 181
- 9.1.1 树形面板关键词 181
- 9.1.2 深入根节点 182
- 9.2 “种下”你的第一棵树 183
- 9.3 培育动态树形面板 185
- 9.3.1 创建一个远程加载面板 186
- 9.3.2 为树(树形面板)“施肥” 187
- 9.4 在树形面板上实现CRUD 189
- 9.4.1 显示上下文菜单 189
- 9.4.2 添加编辑逻辑 193
- 9.4.3 着手删除 196
- 9.4.4 为树形面板创建节点 198
- 9.5 小结 200
- 第10章 绘画和图表 201
- 10.1 绘制形状 201
- 10.2 绘图概念 202
- 10.3 表面子画面 202
- 10.3.1 绘制子画面 204
- 10.3.2 管理位置和大小 205
- 10.3.3 自适应大小的子画面 207
- 10.4 子画面交互 207
- 10.5 掌控路径 211
- 10.6 深入了解图表 213
- 10.7 实现笛卡儿图表 215
- 10.7.1 配置轴 215
- 10.7.2 添加序列 218
- 10.7.3 改进可视化助手 219
- 10.7.4 添加定制形状 222
- 10.7.5 同一个图表中的多序列 224
- 10.8 定制主题 226
- 10.9 饼图 230
- 10.10 小结 232
- 第11章 用Ext Direct实现远程方法调用 233
- 11.1 使两端相见 233
- 11.2 对比Ext Direct和REST 235
- 11.3 服务器端配置 236
- 11.3.1 它是怎样工作的 236
- 11.3.2 远程方法配置 236
- 11.3.3 路由 237
- 11.4 远程方法 238
- 11.4.1 配置路由器 238
- 11.4.2 启用Ext Direct 240
- 11.5 直接调用远程方法 243
- 11.6 启用CRUD 的Ext.data.DirectStore 245
- 11.7 小结 248
- 第12章 拖放 249
- 12.1 拖放工作流 249
- 12.1.1 拖放的生命周期 250
- 12.1.2 自上而下审视拖放类 251
- 12.1.3 一切尽在覆盖之中 252
- 12.1.4 拖放总是在组中工作的 253
- 12.2 拖放:一个基础的例子 254
- 12.2.1 创建一个小型工作区 254
- 12.2.2 配置元素使之可拖动 255
- 12.2.3 分析Ext.dd.DD 的DOM元素变化 256
- 12.2.4 增加泳池和热水浴缸作为放置目标 257
- 12.3 完成你的拖放实现 258
- 12.3.1 增加放入引导 259
- 12.3.2 增加有效放入 261
- 12.3.3 实现无效放入 263
- 12.4 使用DDProxy 264
- 12.5 视图的拖放 268
- 12.5.1 构建视图 268
- 12.5.2 添加拖动手势 272
- 12.5.3 使用放入 275
- 12.6 网格面板的拖放 278
- 12.7 树形面板上的拖放 282
- 12.7.1 构建树形面板 282
- 12.7.2 启用拖放 284
- 12.7.3 采用灵活的约束 284
- 12.8 小结 287
- 第三部分 构建一个应用
- 第13章 类系统基础 290
- 13.1 经典的JavaScript继承 290
- 13.1.1 创建一个基类 291
- 13.1.2 创建一个子类 292
- 13.2 Ext JS的继承 293
- 13.2.1 创建一个基类 294
- 13.2.2 创建一个子类 295
- 13.3 扩展Ext JS组件 296
- 13.3.1 想想你在构建什么 297
- 13.3.2 扩展GridPanel 298
- 13.3.3 实践你的扩展 299
- 13.4 用插件来救援 302
- 13.4.1 插件的剖析 302
- 13.4.2 开发一个插件 303
- 13.5 使用Ext JS加载器的动态加载类 306
- 13.5.1 动态加载一切 306
- 13.5.2 应该按需加载 308
- 13.5.3 采用混合的方案 309
- 13.6 小结 311
- 第14章 构建一个应用 312
- 14.1 像Web UI开发者一样思考 312
- 14.2 应用的(基础)结构 313
- 14.2.1 在命名空间内进行开发 313
- 14.2.2 动态依赖加载 315
- 14.3 开启Survey 应用 318
- 14.3.1 从想法到代码实现 318
- 14.3.2 用Sencha Cmd加快开始的步伐 319
- 14.3.3 引导Survey项目 321
- 14.3.4 数据驱动的应用程序模型324
- 14.3.5 给应用程序增加模型 325
- 14.3.6 添加数据存储 329
- 14.3.7 创建验证表单 330
- 14.3.8 插入第一个控制器 332
- 14.3.9 Survey视图 333
- 14.3.10 Survey控制器 336
- 14.4 打包 342
- 14.5 小结 344