浅议ExtJS-5.0的特性

ExtJS5
# 采用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之外,还提供formulas属性对data进行二次构造,
类似富血对象的设计,以便让View能专注于展示结构
# 尽量给每个子View分派子ViewModel,而不要把所有数据都堆放在父ViewModel中,
这样当该子View销毁的时候,子ViewModel中的数据也能随之释放。

当然这要求子ViewModel中的数据只对子View是有用的。

假如多个View共用一个ViewModel,新创建的View实例会生成一个新的ViewController、ViewModel,所以通过ViewModel.getStore(),会得到不同的Store。

# 在基于ExtJS5的单页面应用中,用户切换浏览器的前进后退按钮时,Ext实际上是通过解析URL中的hash段的变化来识别。



原文地址:http://blog.csdn.net/robinsone/article/details/45872605

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值