官网:http://docs.sencha.com/extjs/6.5.1/classic/Ext.html
示例demo:https://fiddle.sencha.com/#view/editor&fiddle/255l 密码:k2
ExtJS
1、主要控件:Application
、View,ViewModel,Controller,Component,Store,Model
2、常用store:Strore(最常用),JsonStore,TreeStore,ArrayListStore(用于本地下拉框)
3、Store
3.1、storeId:view使用,Ext.StoreMgr.get(‘storeId‘);全局唯一,容易被冲掉
3.2、推荐使用viewModel.getStore(‘vm中‘);grid.getStore();
3.3、autoload为true时实例化的时候就加载,否则在调用load方法时才加载
3.4、store可以通过proxy去加载restful
4、Controller
4.1、控制器的写法尽量不用listen,用init的方法
4.2、initViewModel,可以保证viewmodel实例化完成
4.3、通过this.getReferences()可以获取所有的视图里的引用
示例:
----holder1(holder) ----this.getView() --顶层
--------type10 ----holder1.type10
--------type20 ----holder1.type20
------------type21 ----holder1.type21
------------holder2(holder) ----holder1.holder2
----------------type1 ----holder1.holder2.type1
4.4、通过this.getViewModel()获取总对象
5、model
5.1、model只定义结构,可以通过proxy加载restful
6、model、store的区别
6.1、model是一条数据
6.2、store是mode的list
6.3、在vm里面使用model是用links,使用store是用stores,使用data是用本地数据
6.4、store里面包含model属性
7、viewmodel
7.1、links里面的create:true表示new一个空的对象,如果是create:{id:123},表示new一个包含id数据的对象
7.2、links:id:12表示从后台请求主键id为12的数据,(id是不是固定写法不确定)
8、自定义双向bind属性
8.1、参考url:http://docs.sencha.com/extjs/6.5.1/classic/Ext.Class.html#cfg-config
8.2、双向绑定里面如果带小数点的表示json对象的方式访问。
比如{task.types.url},那么在vm里面里面可以使用viewmodel.set("task":{types:{url:"aaa"}})的方式进行设置值
也可以使用set(‘task.types.url‘,"XXX")进行赋值,默认还是会生成json对象。
9、数据类型:
String,Integer,Number,Bool,Date
参考地址:http://docs.sencha.com/extjs/6.5.1/classic/Ext.data.field.String.html
10、view.
10.1、定义一个referenceHolder:true,这个属性之后的每个子孙节点可以定义个reference,referenceHolder也可以嵌套使用,在同一个referenceHolder下,不管多少级,不能重名,拉平浮动到同一referenceHolder层。
11、错误提示
12、data 本地数据(写死的)