登录
注册
关于我们
简体中文
ENGLISH
搜索
购物车
0 ITEMS ON YOUR CART
首页
动态
方案
案例
专栏
期刊
联系我们
首页
期刊
基于Ext JS的模块化应用框架搭建及开发
Ext JS开发大全
第1章 Ext JS快速入门示例[4/4]
第12章[12.10]富文本编辑器 CKEditor与Ext JS的整合
第12章[12.10.1] Ext JS + CKEditor+Spring Boot 实现编辑器图片上传
第11章[11.6] Ext JS 自行搭建远端库的包升级版本后找不到的问题解决
[Ext JS 4] 实战之Grid, Tree Gird编辑
ext命令集
第12章[12.3] Ext JSGrid中的超链接列及其功能实现
[Ext JS]textfield添加compositionstart、compositionupdate 和compositionend _os
[Ext JS ] 动添切换字段的必填与非必填
3.1 Ext JS 组件总览
[Ext JS] Grid表格批量编辑的实现
Ext JS 快速开发工具
带触发器按钮的输入框
Ext JS的布尔对象类型处理及便捷方法
Ext JS的Object类型处理及便捷方法
ExtJS RadioGroup(单选按钮组) 使用及注意事项
Ext JS 模拟后端数据实现
ToolTip 实现全介绍
Ext JS下拉单选框(Combobox,TagFied)使用及疑难问题解决
Ext JS应用测试概览
Sencha Studio 监视工具( Inspect Tool)
Ext JS 4 升级指南
Ext JS 如何定义公用方法(单例类 or 静态方法)
Ext JS的模块化开发(Package)
Ext3 -- Form 实例。 用来migrate file 数据到DB用的
ExtJS 3 在Tab下加入Form 实例
Extjs Grid 中给已经添加过Filter的列增加标识
Extjs 实战之 Ext.tree.TreePanel Tree无法显示
Extjs弹出框的异步执行
Grid 动态该表列( reconfigure)的性能改善
Spring Boot Ext JS准前后端框架应用的会话(Session)处理
[Ext JS 4] Extjs 图表 Legend(图例)的分行与分列显示
[Ext JS 4] Extjs 之 initComponent 和 constructor的区别
[Ext JS 4] Grid 中的单元格添加Tooltip 的效果
[Ext JS 4] Grid 实战之分页功能
[Ext JS 4] Grid 组件
[Ext JS 4] MVC 应用程序框架
[Ext JS 4] MVC 应用程序框架
发布 [Ext JS 4] contentEL,renderTo, applyTo 释义与区别
[Ext JS 4] 动态加载
[Ext JS 4] 实战之 ComboBox 和 DateField (消失之解决办法)
[Ext JS 4] 实战之 Picker 和 Picker Field
[Ext JS 4] 实战之 带week(星期)的日期选择控件(二)
[Ext JS 4] 实战之 ComboBox 和 DateField 的点击事件在IE下失效
## [Ext JS 4] 实战之 带week(星期)的日期选择控件(三)
[Ext JS 4] 实战之 带week(星期)的日期选择控件
[Ext JS 4] 实战之Chart 坐标控制(单坐标,双坐标)
[Ext JS 4] 实战之Chart, Column Chart 定制颜色
[Ext JS 4] 实战之Grid, Tree Gird 动态添加列
[Ext JS 4] 实战之Grid, Tree Gird 动态添加列续(性能考虑)
[Ext JS 4] 实战之Grid, Tree Gird 动态添加行
[Ext JS 4] 实战之Grid, Tree Gird 添加按钮列
[Ext JS 4] 实战之Grid, Tree Gird编辑Cell
[Ext JS 4] 实战之Load Mask - 在Grid Reconfigure的使用状况
[Ext JS 4] 实战之Load Mask(加载遮罩)的显示与隐藏
[Ext JS 4] 实战之多选下拉单 (带checkbox) 续 - 带ALL 选项
[Ext JS 4] 实战之多选下拉单 (带checkbox)
[Ext JS 4] 实战之升级系列一[Ext jS 3-->Ext JS 4]
[Ext JS 4] 实战之将chart导出为png, jpg 格式的文件
[Ext JS 4] 实战之浏览器兼容
[Ext JS 4] 布局之实战二 - 中间区块不会自动伸展 (tab)续
[Ext JS 4] 组件之图表
[Ext JS 4]后台自动产生图档
[Ext JS 4]性能优化
[Ext JS 7 ]7.5 自适应配置 - Responsive Configs
[Ext JS 7] 关联(Association)
[Ext JS 7]事件(Event)
[Ext JS 7]ClassRequire错误解决
[Ext JS 7]的开发模式
[Ext JS 7]基于NPM的开发
[Ext JS ] 动添切换字段的必填与非必填
[Ext JS4] 数据包
[Ext JS4系列]Ext JS4 入门
[Ext JS6] Grid不同列的关联编辑
[Ext JS6] ViewControllers-视图控制器
[Ext JS6]Ext.Template
[Ext JS6]Sencha Cmd
[Ext JS6]编码规范
[Ext JS6]多类型设备开发
[Ext JS6]工作区-Workspace
[Ext JS6]路由(Routing)及使用
[Ext JS6]视图模型和数据绑定
[Ext JS6实战] Ajax获取Tree Store
[Ext JS6实战] Ext.XTemplate
[Ext JS6实战]动态数据绑定
[Ext JS] Sencha Cmd命令参考之二
[Ext JS] Sencha Cmd命令参考之一
[Ext JS] Group Grid-分组网格
[Ext JS] Group Grid-分组网格
[Ext JS]嵌套Grid的实现及注意事项
[Ext JS]SimXhr.js__dc=1659315492151_65 Uncaught TypeError问题分析与解决
[Ext JS]Sencha Studio安装与快速介绍之一
[Ext JS]textfield 添加 compositionstart、compositionupdate 和 compositionend
[Ext JS]图片显示方式
[ExtJS 6]Grid分页工具栏无效问题解决
[ExtJS6]ResponsiveColumn-自适应列布局
[Extjs 4] 类系统
基于Ext JS的模块化应用框架搭建及开发
[Ext JS] 自行搭建远端库的包升级版本后找不到的问题解决-The following versions are available
[Ext JS]鼠标移入移除时弹出和关闭窗口
[Ext JS]富文本编辑器 CKEditor与Ext JS的整合
[Ext JS]可编辑列Grid的全场景开发
['Ext JS]Grid中的超链接列及其功能实现
[Ext JS]Ext JS + CKEditor+Spring Boot 实现编辑器图片上传
[Ext JS]介绍与快速入门1
[Ext JS]实现带动态数字的图标
Spring Boot+Ext JS 实现图形验证码
Ext JS介绍与快速入门2
Ext JS开发基本环境准备与项目创建
[Ext JS]开发模式及快速测试方式
[Ext JS]多类型终端-电脑、移动端(手机、平板)
[Ext JS]基于Ext JS的MVC/MVVM架构的应用开发模式
[Ext JS]Ext JS的类与类体系
[Ext JS]Ext JS组件、容器与布局
[Ext JS]组件与容器的选择与开发
[Ext JS]Ext JS数据模型与数据封装
[Ext JS]Ext JS的控制器类型及使用
[Ext JS]说透Ext JS的窗口及对话框用法
[Ext JS]说透Ext JS的窗口及对话框用法
[Ext js]Grid行选择的多种场景和实现方式
[Ext JS]Ext JS类的继承与混合
CmsWing
基于Ext JS的模块化应用框架搭建及开发
## 基于Ext JS的模块化应用框架搭建及开发 ### Ext JS模块化开发 早期基于Ext JS的Web开发方式,是在HTML中引入JS和CSS文件,典型的就是引入 ext-all.js 这样的文件。ext all 包含的内容很多, 有基本的核心组件、扩展组件以及图表等其他组件。如果应用中不需要使用这些包,则导入全部的Ext JS包显然就是浪费了网络资源,同时应用的启动速度也大打折扣。 在Sencha Cmd工具之前,可以使用YUI Compressor编译和压缩指定的组件;在Sencha Cmd出现之后,编译选定包的代码就变得容易了。 Ext JS的发展陆续追谁了最新的前端技术,包括Node.js 和模块化开发等,具体包括: 代码结构及开发模块化 模块化编译 模块化加载,也就是动态加载 ### 拆分模块的应用 在一般的应用中,比如互联网网站或是简单的应用系统,基本上创建一个应用,在该应用目录下开发即可,不需要拆分模块; 但如果是复杂的应用,类似使用Ext JS创建大型的应用系统,比如ERP或是PLM系统, 这些系统包含的模块很多,对于某些角色的用户,可能只会使用到一个或几个模块的功能, 不拆分模块的状况下,编译后的js 文件会达到几兆乃至十几兆,在该状况下,应用的首页的初始化就会很慢,需要一分钟乃至数分钟才能显示。这个时候,就需要引入模块的动态加载功能。 此外, 在应用较大时,拆分模块进行开发对于代码的分发和管理也是有很多好处的。 根据是否拆分和共享核心模块, 模块的结构分为两种: 在应用下创建核心模块和业务模块 ![](/upload/picture/2022-10-09/upload_fe7dfaa2a70c4acb505ba5a09a967f5b.png) 不共享核心模块的状况下,将核心模块和业务模块创建在同一个Sencha Cmd应用中,业务模块继承自核心模块。 核心模块包含的内容有: 应用的布局(包括导航栏、工作区等) 应用的共用组件(基本是对Ext JS组件的封装或是业务需要开发的共用组件) 便捷的共用方法 其他 核心模块在应用启动时加载, 业务模块根据需求加载。 分离核心模块 并创建业务模块。 分离核心模块比较适用将Ext JS作为平台框架, 供多个系统导入使用,模块拆分的结构如下: ![](/upload/picture/2022-10-09/upload_87518313b457b12b98603686293e0e7e.png) 分离和共享核心模块, 核心模块使用单独的应用开发, 开发完成之后提交到中心库,开发人员拉取核心模块。 模块加载的行为与上面类似。 ### 模块化应用的搭建步骤 这里以应用名称MyApp为例,在其下创建的模块包含: myapp-core 应用核心模块 myapp-foo 某个业务模块 源码使用Git控管。 不分离核心模块与业务模块的场景 分离核心模块的场景稍微复杂些,不分离核心模块相对简单,搭建应用框架的步骤如下: 使用Cmc创建Ext JS应用 在当前目录下创建MyApp的Cmd应用。 ``` sencha -sdk D:\install\ext7 generate app MyApp myapp ``` MyApp 是应用的命名空间, 相当与包名, 习惯首字母大写 myapp 是项目目录名称 出现以下页面代表创建成功。 在应用下创建核心模块 ``` sencha generate package myapp-core ``` 以上命令会将创建的包加入应用的依赖 在应用下创建业务模块的包 ``` sencha generate package myapp-foo ``` 这里同样会将创建的包加入应用的依赖,但是这里需要做一些修改: – 加入package-loader模块, 该模块是Ext JS提供 – 将myapp-foo移到uses配置下, 实现动态加载 ```javascript "requires":["font-awesome", "package-loader", "myapp-core"], "uses":["myapp-foo"], ``` 开发环境实时开发 ``` sencha app watch --uses ``` 生产环境编译 ``` sencha app build -u production ``` 分离核心模块 核心模块可以有独立的命名空间,这里以ComApp为例。 创建核心模块的应用 ``` sencha -sdk D:\install\ext7 generate app ComApp comapp ```
网站导航
首页
动态
方案
案例
专栏
期刊
联系我们