浅议ExtJS-5.0的特性


# 采用MVVM,应用ViewModel与DataBind,声明式风格,关注点分离
# 有点像Spring框架,开发人员关注各种对象(Model,Store,View,ViewModel,ViewController),
而这些对象怎么交互和协作,统一交由ExtJS来处理
# Sencha CMD是一个命令行工具,管理一个Ext项目的生命周期。它可以创建(genenrate), 编译build, 监听watch
# 一个Model描述一个实体对象,主要包括名称,字段类型;此外还可以有数据的逻辑:如校验,类型转换等
# 一个Store通常包含Model(数据的格式),Proxy(数据怎么获取),Reader(数据怎么转换)
# 一个View通常代表一个组件(Component),如Grid, Tree, Panel, Container以及ViewPort, 这些组件均可作为View的实例
# 一个ViewModel服务于特定的View,为View提供合适的数据
# 一个ViewController服务于特定的View,为该View监听事件,在回调函数中实现业务逻辑
# View通过viewModel属性把ViewModel粘合进来,在View中可以指定bind属性,提取ViewModel中的绑定内容
# View通过controller属性把ViewController粘合进来,ViewController与View是一对一关系,
ViewController的生命周期与View是一致的,View销毁,则ViewController也随之销毁
# ExtJS5使用Ext.define(...)定义子类,使用Ext.create(...)创建实例,
这样做可以延迟并按需加载所需组件,解决框架启动时的性能,以后就不要使用new关键字来创建对象
# ExtJS5的事件监听函数中,获取当前View中其他组件的新方法,
是在目标组件上定义一个reference属性,然后监听函数使用lookupReference函数得到,这一点
比基于id属性的Ext.getCmp()更稳定, 因为你在大团队项目中无法保证id的选择不重复
比基于itemId的refs查询速度更快,因为它不经过查询,它使用的是内部注册与缓存机制
# bind动态绑定高于静态设置,比如一个Component的title,既设置有静态值,也有bind绑定,最终bind获胜
# ViewModel除了提供data属性供View进行bind之外,还提供formula属性对data进行二次构造,
类似富血对象的设计,以便让View能专注于展示结构

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。