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;} });????調用偽類定義如下:
????運行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 如下:
????運行refresh,在bootstrap.js中添加的如下內容:
Ext.ClassManager.addNameAlternateMappings({"Seed.view.StandardC":?[] });Ext.ClassManager.addNameAliasMappings({"Seed.view.StandardC":?["StandardC"] });????運行應用:結果正常
????
????調用偽類定義2 如下:
????運行應用:結果正常
????
????調用偽類定義3 如下:
????運行應用:結果正常
????如果,我們手動刪除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 如下:
????運行refresh,在bootstrap.js中添加的如下內容(注意區別):
Ext.ClassManager.addNameAlternateMappings({"Seed.view.StandardC":?["al.StandardC"] });Ext.ClassManager.addNameAliasMappings({"Seed.view.StandardC":?[] });????運行應用:結果正常
????
????調用偽類定義2 如下:
????運行應用:結果正常
????如果,我們手動刪除bootstrap.js中,路徑備用名和偽類之間的對于關系,refresh
????運行報錯,如下圖:
????注意:例3和例2兩次報錯的區別!
這里的文件加載和類加載的技術細節,不是重點。而是,找到一種適合自己項目開發環境的,類、命名空間、文件路徑之間解耦的解決方案。突破點,在這里,就看怎樣應用!
轉載于:https://blog.51cto.com/wangyuelucky/1597791
總結
以上是生活随笔為你收集整理的sencha app refresh的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双12众商超沦陷,你是否习惯了扮演观众?
- 下一篇: [LeetCode]113.Path S