sencha app refresh
版本说明:
Ext 4.2.1
cmd 5.0.3
1. sencha app refresh的作用是,重新生成bootstrap.js文件,如下图所示:
2. bootstrap.js 三个作用:
添加各个基础命名空间或者类名的映射路径 Ext.Loader.addClassPathMappings()
将类名和备用名,对应起来 Ext.ClassManager.addNameAlternateMappings()
将类名和别名,对应起来 Ext.ClassManager.addNameAliasMappings()
三者对应的meta命令分别为:
sencha compile -classpath=app meta -loader -out wyloader.js
sencha compile -classpath=app meta -alt -out wyalt.js
sencha compile -classpath=app meta -alias -out wyalias.js
参考地址:http://docs.sencha.com/cmd/5.x/advanced_cmd/cmd_metadata.html
注:
Ext.define('MyApp.view.Test'),这里的name既对应文件路径,也对应Ext级别的class。为了后文叙述,我们暂且叫他“伪类”
备用名:对应文件路径的作用
别名:对应Ext级别的class的作用
bootstrap.js的作用是影响Ext.loader的文件加载和路径查找,以及Ext.ClassManager的类映射。
3. 用三个例子来说明一下
例1,普通的方式
伪类StandardC定义如下:
Ext.define('Seed.view.StandardC', {config:{name : 'wy'},add : function (x, y) {return x + y;},subtract : function (x, y) {return x - y;} });
调用伪类定义如下:
Ext.define('Seed.Application', {name: 'Seed',extend: 'Ext.app.Application',requires:['Seed.view.StandardC' // 注意:如果用create方式创建对象,这里的require可省略],launch: function () {var sc = Ext.create('Seed.view.StandardC'); alert('sc :'+ sc.getName()+ ' ,res: ' + sc.add(3,4));} });
运行refresh,并访问地址,结果:运行正常
例2,类的别名的方式
伪类StandardC定义如下:
Ext.define('Seed.view.StandardC', {alias: 'StandardC', // 注意这里用类的别名config:{name : 'wy'},add : function (x, y) {return x + y;},subtract : function (x, y) {return x - y;} });
调用伪类定义1 如下:
Ext.define('Seed.Application', {name: 'Seed',extend: 'Ext.app.Application',requires:['Seed.view.StandardC' // 注意:这里引用伪类],launch: function () {var sc = Ext.create('StandardC'); // 注意:这里用类的别名alert('sc :'+ sc.getName()+ ' ,res: ' + sc.add(3,4));} });
运行refresh,在bootstrap.js中添加的如下内容:
Ext.ClassManager.addNameAlternateMappings({"Seed.view.StandardC": [] });Ext.ClassManager.addNameAliasMappings({"Seed.view.StandardC": ["StandardC"] });
运行应用:结果正常
调用伪类定义2 如下:
Ext.define('Seed.Application', {name: 'Seed',extend: 'Ext.app.Application',requires:['StandardC' // 注意:这里引用类的别名],launch: function () {var sc = Ext.create('StandardC'); // 注意:这里用类的别名alert('sc :'+ sc.getName()+ ' ,res: ' + sc.add(3,4));} });
运行应用:结果正常
调用伪类定义3 如下:
Ext.define('Seed.Application', {name: 'Seed',extend: 'Ext.app.Application',requires:[// 注意:这里不添加任何引用],launch: function () {var sc = Ext.create('StandardC'); // 注意:这里用类的别名alert('sc :'+ sc.getName()+ ' ,res: ' + sc.add(3,4));} });
运行应用:结果正常
如果,我们手动删除bootstrap.js中,类的别名和伪类之间的对于关系,refresh
运行报错,如下图:
例3,路径备用名的方式
伪类StandardC定义如下:
Ext.define('Seed.view.StandardC', {alternateClassName: 'al.StandardC', // 注意这里用路径的备用名config:{name : 'wy'},add : function (x, y) {return x + y;},subtract : function (x, y) {return x - y;} });
调用伪类定义1 如下:
Ext.define('Seed.Application', {name: 'Seed',extend: 'Ext.app.Application',requires:['al.StandardC' // 注意:这里引用备用路径],launch: function () {var sc = Ext.create('al.StandardC'); // 注意:这里用备用路径alert('sc :'+ sc.getName()+ ' ,res: ' + sc.add(3,4));} });
运行refresh,在bootstrap.js中添加的如下内容(注意区别):
Ext.ClassManager.addNameAlternateMappings({"Seed.view.StandardC": ["al.StandardC"] });Ext.ClassManager.addNameAliasMappings({"Seed.view.StandardC": [] });
运行应用:结果正常
调用伪类定义2 如下:
Ext.define('Seed.Application', {name: 'Seed',extend: 'Ext.app.Application',requires:[// 注意:这里不添加任何引用],launch: function () {var sc = Ext.create('al.StandardC'); // 注意:这里用备用路径alert('sc :'+ sc.getName()+ ' ,res: ' + sc.add(3,4));} });
运行应用:结果正常
如果,我们手动删除bootstrap.js中,路径备用名和伪类之间的对于关系,refresh
运行报错,如下图:
注意:例3和例2两次报错的区别!
这里的文件加载和类加载的技术细节,不是重点。而是,找到一种适合自己项目开发环境的,类、命名空间、文件路径之间解耦的解决方案。突破点,在这里,就看怎样应用!
转载于:https://blog.51cto.com/wangyuelucky/1597791
sencha app refresh相关推荐
- sencha app watch php,Sencha Cmd使用指南
查看Cmd版本 使用 sencha 命令查看当前cmd版本信息 sencha 显示如下 Sencha Cmd v6.1.2.15 Sencha Cmd provides several categor ...
- sencha app watch php,使用新的SenchaCmd4命令appwatch
原文:http://www.sencha.com/blog/using-the-new-app-watch-command-in-sencha-cmd-4/ 作者:Don Griffin Don Gr ...
- sencha app watch php,Sencha Touch构建移动端App
Sencha Touch是什么 Sencha Touch是专门用于移动应用开发的JavaScript框架,也是第一个基于HTML5的移动应用框架,其前身是Ext.使用Sencha Touch,开发者可 ...
- sencha app watch php,Sencha Cmd 命令及 ExtJs 应用的调试工具
Sencha Cmd 命令格式 sencha [category] [command] [option...] [arguments...] 帮助信息 sencha help 会列出所有的分类,顶层命 ...
- sencha app watch php,我的第一个基于SenchaTouch的WebApp
经过进一周的各种折腾,各种想放弃,各种纠结,最终还是顺利的完成了SenchaTouch的开发,回想起来感觉"甜甜的",也充分体会到Sencha MVC开发模式的好处,以及Sench ...
- Ext6.2 sencha app build 几种报错的解决方法
1.页面调试debugger没有删除 C2009: YUI Parse Error (identifier is a reserved word => debugger;) -- ...
- 【翻译】使用新的Sencha Cmd 4命令app watch
原文:http://www.sencha.com/blog/using-the-new-app-watch-command-in-sencha-cmd-4/ 作者:Don Griffin Don Gr ...
- Sencha Cmd包
#Sencha Cmd包 Sencha Cmd包含Sencha包管理器.包的设计主要为了解决两个问题:吞吐量和分布式开发. ## 包文件夹 所有的工作空间在根目录都有一个由Sencha Cmd生成的& ...
- 搭建远程仓库(源)来托管 Sencha 包(Package)
原文链接:https://blog.csdn.net/lovelyelfpop/article/details/78702191 在 之前的文章 中,我已经展示了如何使用本地 package.在本文中 ...
最新文章
- 论机器学习领域的内卷
- 云计算已成创新基础设施,三大暗流左右未来“云市场”
- ceph 集群 健康状态 监管
- Python3 requests post 中文乱码 UnicodeEncodeError: ‘latin-1‘ codec can`t encode characters in ……
- 深入理解分布式技术 - Dubbo vs Spring Cloud
- OpenCV捕获视频和摄像头
- 结合JDK源码看设计模式——简单工厂、工厂方法、抽象工厂
- VB打开文本文件各种方法
- 调试经验——Windows10中iTunes不能识别iPad的解决方法
- 阿里云无影云桌面初体验
- 牛客补题 树 dsu on tree
- 为什么选择WordPress作为企业CMS?
- 【随笔】那些免费友好的遥感影像数据下载网站
- html点击切换图片代码简易,html点击按钮时切换图片的代码是什么?
- 海洋cms宝塔定时linux,海洋cms怎么设置宝塔自动采集教程
- Ruby On Rails 4 hello world,Ruby On Rails上手
- Python含金量较高的证书以及学习困难盘点!
- otg usb 定位_USB OTG插入检测识别
- OA系统二十四:请假审批五:【点击“审批”后的审批弹出框】的后台逻辑;(审批结果提交的Dao层和Service层逻辑)
- Redis分布式锁实现并发秒杀商品设计思路