模型Model: 最为简单,只是单纯定义数据结构,模型定义以下内容:
字段名称,类型,模型间的关联关系,模型的Proxy API,数据检验器Validators
数据Store: 实际上是模型的实例,主要定义和包含以下内容:
1, 可以在data属性中存放具体的数据,可以指定一个ID给Store
2, 模型名称
3, 数据存取API
4, Proxty API
视图View: 定义了界面布局及控件,它并不定义事件,一些涉及到数据的控件,还可以在此指定采用的数据ID
控制器Controller: 实际上,数据和视图是被控制器控制的资源,控制器主要负责:
1, Stores属性:指定要载入的数据
2, Views属性:指定要载入的视图
3, Models属性:指定要载入的模型
4, Init方法:初始化视图
5, 定义各个事件处理成员,在事件处理中,可以调用store或model的方法来存储或读取数据,使用control方法查找视图中控件,并委托事件处理
MVCD的关键是,把数据的定义跟数据分开,把视图的定义跟事件的定义分开,让模型负责自身的有效校验,让数据负责自己的载入和存储,每个部分完全独立,再使用控制器来载入各部分,按需要初始化视图,委派事件,调用数据中定义的方法载入和保存数据等。
应用程序的定义:
Name:名字
appFolder:类所在文件夹
launch:应用程序初始化方法,通常在这里要建立一个Viewport,然后将View加入其中,已经定义的视图,在这里,可以直接通过xtype来引用,如果设置了autoload的话,会自动载入以appname为名称的视图
类的定义:
先定义namespace: Ext.ns
再定义类本身:Ext.define(className, members);
类定义中最重要的属性:
Extension:定义父类
Constructor:定义构造器
Config:配置
Set属性名/get属性名/apply属性名/reset属性名:apply属性名会在set之后调用,作后置处理
Static:定义静态成员和方法
Mixins: 要继承的其他类名
Alias:别名