内线4是在Web应用程序的开发提出了革命性的一步。几乎每一个框架内的重要组成部分,已改善,在大幅因此许多情况下。也有很多是因为内线3全新的组件和子系统。本指南将提供介绍EXT 3和4之间的所有重大变化。
如果您发现本文档中的任何问题,或想提供反馈,请访问EXT 3至4移民在煎茶论坛线程。
一般
这些变化适用于双方内线核心和Ext JS。
EXT 3兼容性
内线4是迄今为止最全面的更新,Ext JS的,我们曾经产生的,需要很多变化,不兼容内线3。然而,我们已经竭尽全力,提供尽可能的向后兼容性。
JS兼容性层
这是一个可选的EXT 4加载后,将提供必要的别名和覆盖,使绝大多数EXT 3代码下运行EXT 4是正确的,可以被引用的JavaScript文件。
您可以下载Ext JS的3至4迁移包Ext JS的下载页的“相关下载”一节
沙盒模式
内线4引入了变化,现在它可以完全沙箱以前的版本在同一页的框架内沿着内线4。在JavaScript端的,这是可能与清除所有原型增强核心JavaScript对象在内线4。现在您只需别名全球Ext对象,以不同的名称和完全分离从以前版本的分机。
EXT 4上标记/ CSS方面的事情,现在使用指南针和上海社会科学院的模板使用CSS生成,所以它是微不足道的定制框架中定义的所有CSS规则的前缀。结合与新Ext.baseCSSPrefix属性,它是非常容易隔离分机多个版本在一个页面上生成的标记。
包和命名空间更新
所有的类和包已经改制,按照严格的命名约定。这使得类更一致和更容易地找到。例如,Ext中的3类如按钮,CycleButton和SplitButton简单归入/部件(以及许多其他类)。直接对全球Ext对象的类也定义。
4 Ext中,每类一直放置到包和命名空间相关的功能为基础。这不完全是新的,但从来没有坚持在内线3执行。回到上面的按钮的例子,在内线4,现在这些类:
- 组合成一个单一的src /按钮,在文件级/包
- 分为新Ext.button命名空间中的代码
- 更名为新namspaces的基础上(例如,Ext.SplitButton - > Ext.button.Split)
所有被重组类仍然可用通过新alternateClassName属性,所以EXT 3类名仍在工作,如有必要(的如alternateClassName:“ Ext.SplitButton“)。展望未来,它与分机4发展建议你迁移到内线4 新公约在自己的代码。
内线核心
一类新的系统
资源
当然分机已建成一个强大的原型为基础的等级制度,这近似于传统的面向对象的基于类的系统。Ext中的4,我们已经采取了我们的阶级制度的灵活性,新的水平,与许多关键功能的加入,所有的变化,最好是100%,与EXT 3类系统向后兼容。主要的新特点是:
- Ext.define类定义创建新的系统内
- 自动依赖管理和动态类加载
- 混入
- 静力学
- 新的配置选项,自动生成的setter / getter
类定义
您仍然可以使用的尝试和真正的新的ClassName()在Ext 4语法,但前进的首选语法是使用新Ext.define功能定义新类。在以下各节的其他类功能类明确定义Ext类系统内都成为启用。新的关键字仍然会工作,但没有这些好处。
使用一个额外的好处Ext.define是,它会自动检测和创建新的命名空间,而不需要明确定义单独的命名空间声明使用它们的类。
这里有一个简单的例子,你将如何自定义一个类,扩展现有的Ext组件的新老语法:
/ /分机:
分机。NS(“MyApp的' ); / /需要在内线3
MyApp的。CustomerPanel = 分机。延长(分机。小组, {
/ /
});
/ / 4转
分机。定义('MyApp.CustomerPanel“ , {
延长: “ Ext.panel.Panel ' ,
/ /等
});
类加载
内线4现在包括一个强大的动态类装载系统,还提供集成的依赖管理。再次,这是一项可选功能,但提供了几个关键的好处:
-
动态加载类可以动态异步加载在运行时简单的基础上,分 机内部管理的依赖关系树。这意味着,你可以停止脆块管理手册,包括在HTML页面中的标签,只是让类装载器找出你的网页需要运行。这主要是在开发环境中的有用时依赖的灵活性是比页面加载速度更重要。
-
动态生成代:生产,它通常最好还是要编译一个单一的文件(或几个)建立。由于内线现在明白整个依赖关系图在运行时,它可以很容易地输出,图形需要(例如,在自定义生成配置的形式)。甚至更重要的是,这种能力是没有限制的分机命名空间。你可以包含任何自定义类和命名空间,除了分机,只要一切都被定义使用类系统分机就能找出如何,他们都涉及。在不久的将来,任何外部开发者将有1,单击“自定义生成能力,自动管理的整个内线+自定义应用程序的类图,好像它改变从一分钟到下一个,并只有建立完全什么是实际的应用程序需要。
启用动态加载,只需使用Ext.define和使用两个新的类的属性在代码中定义的依赖关系:
- 要求:类,一类工作所需的依赖关系。这些都保证要加载到当前类被实例化之前。
- 用途:可选类使用,但不要求,一类的依赖关系。这些都可以异步加载,并没有被实例化的类。
混入
这是一种新的方法来插入现有类的自定义功能。新混入配置,包括一个类的实例化过程中,让你的新功能“混合”类的原型。这是类似现有Ext.override功能,虽然它并不像覆盖取代现有的方法,它简单地扩充,无论是新的原型。例如语法:
分机定义('Sample.Musician“ , {
延长: “Sample.Person' ,
mixins: {
guitar: 'Sample.ability.CanPlayGuitar',
compose: 'Sample.ability.CanComposeSongs',
sing: 'Sample.ability.CanSing'
}
});
静力学
现在可以定义任何类的静态方法,只需在其静态类属性定义。
配置
Ext中,我们目前使用的长期配置意味着,按照惯例,弥补其配置API的类原型上的任何属性,并可以通过调用代码。虽然这仍是4 Ext中的真实,也有一个新的可选配置,这实际上是名为config。配置属性被添加到配置属性时,它会自动生成一个getter,setter方法,复位和应用(模板定制二传手逻辑方法)匹配的属性的方法。例如,鉴于这样的代码:
分机定义(“MyClass的' , {
配置: {
标题: “默认标题”
}
});
以下方法将得到自动生成的幕后:
标题: “默认标题” ,
的getTitle : 函数() {
返回 此称号;
}
resetTitle : 函数() {
。setTitle (“默认标题” );
}
setTitle : 功能(newTitle ) {
标题= 。applyTitle (newTitle ) | | newTitle ;
}
applyTitle : 功能(newTitle ) {
/ /自定义代码
/ /如Ext.get(“titleEl)更新(newTitle);
}
env命名空间
提供有关主机浏览器和操作系统,以及一个现代的浏览器功能检测的完整清单的综合信息的访问。
Ext.env.Browser
这个类提供了所有的浏览器元数据(名称,引擎,版本,isStrict等),用于直接全球分机对象的存在。
Ext.env.FeatureDetector
这是一个全新的类,它的功能不存在内线3。它提供了详细的功能的能力,正在运行的主机环境,物业主要是为了检测现代HTML5和CSS3功能的可用性,以及移动功能,包括:
- CSS转换/动画/转换
- SVG / VML的
- 触摸可用性/方向
- 地理位置
- SqlDatabase
- 的WebSockets
- 历史
- 音频
- 视频
Ext.env.OS
标识当前主机的操作系统,包括更全面的清单,比内线3(添加各种移动OS'es)。
郎包
根据分机3存在这个新的包内的功能,但作为核心JavaScript对象原型的修改。虽然这是方便,但它非常具有挑战性的分机共存与其他框架,修改了相同的对象。这也意味着,分机直接暴露在ECMAScript规范未来可能发生的任何更改。为了解决这些问题,我们已经完全消除所有的核心JavaScript对象的修改,他们都放置到适当的命名空间下Ext对象的静态类。
所有的原型增强以下对象已移动(注意,这实际上不是一个郎的命名空间 -它只是持有这些新的文件在源代码树包):
- 阵列- > Ext.Array
- 日期- > Ext.Date
- 功能- > Ext.Function
- 编号- > Ext.Number
- 对象- > Ext.Object
- 字符串- > Ext.String
请注意,这些都将被别名兼容性文件中的核心对象原型的,但为了充分EXT 4,删除多余的兼容层使用这些功能的分机3版本将最终必须更新到新的命名空间的版本。
Ext.Function
基函数原型方法已在内线4实施也有一些值得注意的变化。最重要的是,现在的Function.createDelegate和Function.createCallback方法命名Ext.Function.bind分别Ext.Function.pass。同样地,Function.defer现在可供 Ext.Function.defer的。因为这三种功能是如此常用,他们也到Ext对象别名直接Ext.bind,Ext.pass和 Ext.defer的。
也被移动的其他功能的方法像createSequence和createInterceptor到Ext.Function,也有一些新的有益补充如createBuffered和createThrottled。
下面是如何调用语法改变一些例子:
/ / 3分机:
myFunction的。createDelegate (, [ ARG1 ,ARG2 ]);
myFunction的。推迟(1000 ) ;
/ /分机:
分机绑定(myFunction的, 这一点, [ ARG1 ,ARG2 ];
分机推迟(myFunction的, 1000 , 本);
Ext JS的
资源
一般
适配器
在以前版本的Ext通过第3版,我们支持通过适配器使用第三方的基础库。EXT 4,这种支持已经停止。前进,内线核心将是为所有的Ext JS应用程序所需的基础。当然,第三方库可能仍然可以选择性地使用(事实上,这甚至会更好地工作,现在,JavaScript对象修改已经从内线删除)除了内线核心,但他们将不再支持为基础库依赖的内线。
唱腔
内线4拥有一个完整的唱腔,到框架中的每个组件烤支持新的水平无障碍。Ext.Component现在有一个配置的属性称为ariaRole默认为“简报”(意思的作用仅仅是视觉的,并没有提供用户交互功能),但可以很容易地重写需要。例如,Ext.button.Button覆盖与ariaRole的默认“按钮。这使得进入包装的标记标签标准的作用,HTML属性,告诉屏幕阅读器的功能,所包含的标记(无论多么复杂)代表动作按钮。这是巨大的重要辅助,现在整个Ext实施。
另一个重要的唱腔,成建Ext.Component的提示是自动标准咏叹调 残疾人的HTML属性添加/删除,以示屏幕阅读器的功能UI元素的启用状态。
数据
数据包已经出现了重大的一次升级,因为3.x的 数据是许多软件包之一,现在股转4与煎茶触摸,并且已经有大量当今的信息。这里有一些背景上的新功能的文章,让一些 - 我们强烈建议至少在潜水前的第一个读入代码:
资源
概观
在数据包的变化,大部分都是非破时,包括分机3兼容性文件。最大的更新已经到店,代理和模型,这是新的记录名称:
-
存储不再关心数据的格式(例如,没有必要为的的JsonStore,XmlStore和其他店子类)。现在代表其所附的代理,现在收到的Reader和Writer的实例加载和保存。商店也可以进行多排序,过滤和分组,在客户端上动态,并可以同步你的服务器本身
-
代理现在可以连接到商店或直接到一个模型,这使得它易于操作没有存储的数据。代理可以配置与读者和作家的解码和编码您的服务器通信。
-
模型是一个创纪录的更能干的版本,加入协会,验证和更多的支持 。
Ext JS的4还具有的无缝持续到HTML5的localStorage模型数据的品牌新LocalStorageProxy的。
画
这个包是全新的,并没有内线3模拟。这是一个完整的库,提供自定义的绘图功能,由抽象的标准的SVG和VML引擎,选择最好的一个基于当前的浏览器在运行时可用。此包提供了新的图表在内线4包的基础,但也可以很容易地使用任何类型的自定义的绘图和图形的需求。这里的主要特点:
- HTML5标准为主
- 原始的形状,文字,图像,渐变渲染
- 图书馆类操纵色彩,矩阵变换等
-
Ext.draw.DrawComponent
- 扩展Ext.Component
- 通过特征检测引擎的偏好
- 自定义的引擎的优先顺序
- 布局参与
-
内置通过精灵管理Ext.draw.Sprite
- 抽象绘画元素
- 标准化引擎API语法之间的区别
- 属性
- 事件支持(扩展观测)
- 变换(旋转,平移,缩放)
- 动画支持通过Ext.fx
- SpriteComposites
制图和可视化
图表4分机是EXT 3,支持图表前进了一大步,但基于Flash的。4 Ext中,我们已经完全消除从Flash的图片,但保留了完整的同类最佳的浏览器支持(回来的路上到IE6)使用Canvas,SVG和VML。图表引擎自动选择最好的发动机,在运行时的电流平台,一切都呈现均匀,并在所有支持的浏览器的最佳性能。更重要的是,所有的图表功能共享一个统一的API,无论在使用的基本图表引擎。
资源
FX
在内线3,外汇类主要提供了一套有用元素的影响(幻灯片,高亮,淡入淡出等)。Ext中的4这个基本的功能已被保留,但远远超越了简单的元素影响整个外汇包。
现在有一个基本的协调在页面上同时运行多个动画Animator类。
组件现在可以在通过新的Fx的“目标”类(* Ext.fx.target)的,它开辟了许多新的可能性,用于创建动态用户界面的大小和位置的动画。
布局
资源
ComponentLayout
成分复杂,使用的的新ComponentLayout(作为反对以ContainerLayout,新的名称为传统的基于容器的布局进行内线3)进行反应来调整通话内部元素的大小。这样的一个例子是FieldLayout管理关联的标签和输入元素内包含字段组件的大小和位置。
FormLayout
至于内线4,FormLayout是不再可用。在表格部分在本文档后面的详细信息,请参见布局。
BorderLayout的
4在Ext布局的边界是完全向后兼容的Ext 3。
小组头,现在可能是面向垂直,使东部和西部地区取代垂直头(一个完整的Ext.panel.Header 含标题旋转90度的实例,不同于简单的元素在内线3)(礼貌上的崩溃EXT 4的新的抽奖包)。占位符头是可使用的布局新getPlaceholder的方法。占位组件没有渲染,直到小组第一次崩溃。它提供的所有方法Ext.panel.Header类。作为一个容器的子类,它也继承了容器中的所有方法。
另一个小差异是,cmargins配置不再支持。占位符头现在已经扩大面板一样的利润。这使得它更容易地创建倒塌和扩大默认状态良好的布局看起来。
BorderLayout类的内部,现在使用嵌套HBox和VBox的布局到创建镶上安排,使的布局更加灵活和可定制的比以往任何时候。
元件
任何组件的子类可能被配置为使用漂浮浮动:真正的配置指定它上面的文件流浮。浮动组件可以拖动和/或调整大小,使用的标准配置:配置。他们也可能被添加子项的任何容器,在这种情况下,他们将不参加在容器的布局,但会漂浮。
所有浮动元件,现在有自己的z-index由一个ZIndexManager管理。这是EXT 3 WindowGroup类的继任者。默认情况下,他们的表演方法,称为文档体呈现的浮动元件(如Windows)管理单身 Ext.WindowManager。所有浮动元件,因此,有toFront
和toBack方法,其中调用的ZIndexManager的。
浮动组件被添加到一个特定的集装箱在渲染时间获得1 ZIndexManager参考。他们的祖先从集装箱要求的z-index管理搜索。通常情况下,这将提供单身Ext.WindowManager,但如果浮动的组件是一个浮动的后裔容器,如一个窗口,该窗口将创建自身ZIndexManager实例,将管理的浮动范围内所有组件相对窗口的z-index。
这是一个巨大的进步超过以前版本的分机,在浮动容器的复杂安排可以迅速导致不同的组件之间的z-index冲突。现在,例如,在一个窗口中的组合框,下拉菜单将永远是正确管理该窗口上方。
形式
布局
Ext中FormPanel使用Ext中的定位领域的FormLayout标签类,输入框,错误指标等4 FormLayout已完全移除在使用标准布局,统筹安排和新FieldLayout的青睐,(新ComponentLayout之一字段标签类)等,这使得现在可以使用在任何形式的任何一种标准的布局,使创建自定义窗体布局相比,内线3极其简单。
FormPanel默认容器的布局现在是锚,虽然现在可以在任何标准布局形式使用。
FieldContainer中
ext4的同时,引入新的管理形式布局类: Ext.form.FieldContainer。这标准Ext.Container已得到增强,让另外一个标签和/或错误消息,使用相同的配置有关的标签和错误的位置,由支持 Ext.form.Labelable。容器的儿童将被局限于同一空间领域的投入将占据一个真正的现场。这使得很容易地添加任何任意组件的组表单和有他们排队,完全与形式的领域。
视场为混入
一个长期存在的困难与分机已加入非现场组件的形式像布局,验证,价值管理等领域的能力,只有这样,才能轻松地继承Ext中的3场行为是直接子类 Ext.form.Field但在现实中的许多组件必须子类Field类hiearchy外的东西。EXT(和JavaScript)由于没有真正的多重继承的支持,结果通常是复制自定义类,其中非最佳,至少可以说,如果字段的代码,直接进入。
现在EXT 4支持混入其更新的等级制度的一部分,这已不再是一个问题。领域现在可以被用来作为一个mixin的任何其他组件,使得它简单提供满场的API支持几乎所有的东西。当然你可以很容易地覆盖需要,如果需要定制默认域行为的方法(这是常见的覆盖例如getValue和setValue方法)。
验证
建筑形式时,一个共同的愿望是让尽可能立即字段的有效性上的用户反馈,作为用户输入数据。虽然这可以在内线3,它是笨拙和要求使用FormPanel这是最佳的性能非monitorValid选项,因为它调用全表单验证每秒数次。
Ext中的4,我们已经重新设计表单验证,即时反馈,更优雅,高性能。这主要是通过实施一个新的事件流启用:
- 现在听来一套现代浏览器的事件,让我们立即发现变化,为用户通过任何可能的方法,包括打字,剪切/粘贴,拖动到字段中的文本输入字段。我们处理这些事件和一起卷起来,发射领域的changeevent观察时,其价值的变化(下文将进一步讨论)。
- 每个字段验证本身时,其价值的变化。当其有效性的变化,从有效到无效或反之亦然,它激发一个新validitychange事件。
- 当任何领域的发射validitychange事件造成的封闭形式,改变整体的有效性,在BasicForm发射自身validitychange的的事件。
这个新的事件流可以直接反馈给用户关于形式的有效性,因为它是基于对事件而非投票,表现非常出色。因此,这是现在的默认行为(它有明确要启用在内线3),虽然它当然可以轻松地禁用。
然而,在这种情况下,仍然有投票可能仍然是有用的。一些浏览器(尤其是Opera和Safari的旧版本)并不总是火时在某些方面,如剪切/粘贴通过上下文菜单编辑领域的事件。为了处理这些边缘的情况下,你可以配置使用新pollForChanges FormPanel设立间隔轮询字段值的变化,这触发相同的事件流以上。虽然投票仍然没有很大的性能,这是不到分机3的投票密集的,因为它的价值变动,而不是迫使验证(因此,价值分析,转换,模式匹配)每次只检查。
现在每个字段的验证字段的值的变化时,触发检测(假设的validateOnChange配置留给启用)。浏览器用于检测值的变化事件定义由checkChangeEvents配置的,默认设置为以下:
- Internet Explorer的改变和propertychange
- 变化,输入的keyup的TextInput,和所有其他浏览器的DragDrop
这组事件,成功地检测到几乎所有用户启动支持的浏览器上的变化。在写作时已知的唯一的例外是:
- Safari浏览器3.2及以上:剪切/粘贴在文本域通过上下文菜单,拖动文本到文本域
- Opera 10和11:拖动到文本域和文本域的文本,并切通过上下文菜单中的文本字段和文本域
- Opera 9浏览:Opera 10和11一样,加上从上下文菜单中粘贴在文本域和文本域
如果你必须绝对确保上述行动也触发验证触发改变,可以使用FormPanel的和的pollInterval CONFIGS pollForChanges的,和/或方法startPolling和stopPolling,检查计时器上的变化。
内线3支持formBind财产上添加按钮通过按钮的属性,这使得它们被自动启用/禁用形式的有效性变化的形式。4 Ext中,这已被扩大,使formBind可在指定的任何组件被添加任何地方的FormPanel。
FieldDefaults
一个节省时间的老EXT 3 FormLayout的特点是,它允许开发人员配置在各个领域的布局,从一个单一的配置形式,使用的hideLabels,labelAlign等配置属性FormPanel。自4分机现在使用的标准布局为形式的容器,这将是不太方便,有公共领域的布局属性指定为每个字段或容器,一次又一次。因此FormPanel现在有的fieldDefaults配置对象,它指定的值,将被视为默认为所有领域内的任何FormPanel的深度CONFIGS。
BasicForm
BasicForm虽然是最通常仅限于内部使用3 Ext中FormPanel,它已被重构在内线4更灵活,更容易扩展。它不再需要及其关联容器提供的<form>的
元素周围的所有领域,并没有要求其容器手动通知BasicForm时添加或删除字段。因此,现在完全脱钩,从FormPanel,并有可能被用来在任何容器管理的形式领域。
格
网格组件已被重写,从地上爬起来的内线4。虽然这是很好的理由和带来的好处将是值得的,不幸的是,这是完全向后兼容,不能切实维护在内线4的地区之一。将提供一个完整的迁移指南,以协助从内线3至4格的过渡。
智能渲染
内线3的电网工程飞驰,但总是产生每个网格功能(这是在大多数情况下,过于沉重的)所需要的完整的标记的“最小公分母”的方法,其丰富的功能支持。内线4需要一个更聪明的办法解决这个问题。默认的基本格有非常轻量级标记,只能作为开发使不同功能的附加功能将特定的标记呈现。这是一个巨大的推动作用,页面渲染速度和整体网格性能。
标准化的布局
随着一个更聪明的渲染管线,许多新的网格部分已制成适当的组件整合成标准的布局,而不是依靠定制的内部标记和CSS的管理体系。这使我们能够统一网格的渲染过程中,其余的框架,同时仍保留一个像素完美的UI体验。
这方面的一个有用的例子是新HeaderContainer类。Ext中的3列标题被烤成的网格,而不是非常定制。Ext中的4列头是真正的容器,使用标准的HBox布局,让你做提供自定义Flex每列值的东西。
功能的支持
在内线3,它很容易添加新的功能,网格,但这样做没有任何单一的战略。作为插件提供了许多附加功能,但一些通过子类提供。这使得它很难(如果不是不可能的)相结合的某些功能,很容易。
内线4包括一个新的网格基类,,称为Ext.grid.Feature提供创建极为灵活可选的网格功能的基础上。底层模板现在可以修改任何要素类以装饰或变异在GridView生成的标记。功能强大的替代提供了继承旧的GridView,因为它可以很容易地混合和匹配兼容功能。
现已在内线4格的功能的一些例子:
- RowWrap
- RowBody
- 分组
- 分块/缓冲
虚拟滚动
现在分机4格本身支持在渲染过程中的缓冲数据,提供一个虚拟的,其数据的负载需求。电网将现在可以轻松地支持不分页数百甚至数千条记录,内线3的网格功能,这将是一个巨大的改善。
编辑改进
Ext中的3不得不使用专门EditorGrid类,提供一个可编辑的网格,这限制了它的灵活性。Ext中的4现在有可以适用于任何网格实例,它完全可重复使用跨所有网格编辑插件。
作为编辑改进的一部分,从内线3的的流行RowEditor扩展已晋升为一流的,并完全支持框架组件在内线4。
DataView的
现在扩展了标准的DataView类的新的GridView在内线4。这不仅最大限度地减少重复代码的内部,这也使得新的电网甚至更容易定制。因为它扩展的DataView新的网格也能够利用任何观点相同的选择模式,包括通过键盘导航discontinguous选择。HOME,END,PageDown及PageUp键也完全支持。
面板
对接支持
小组现在使用的一个小组,具体ComponentLayout类管理一组停靠在其边界的项目。该小组的身体
元素,然后大小占据任何剩余空间。任何组件,可停靠面板的任何一边通过的新dockedItems,配置属性,对接项目必须与配置 Dock
属性来指定停靠的边境。这使得现在令人惊讶的灵活的面板布局-在内线3不可能像垂直停靠边栏的东西是一件轻而易举的实现Ext中的4。
头的改进
头现在是一流的集装箱子类,继承像子组件的管理和布局的能力。头也可以配置headerPosition一个'顶','右','底'或'左',通过新的对接支持。
工具(小头按钮,如最小化,关闭等执行行动)现在也适当的组件,使它们更灵活,比他们在内线3。
Resizer的
分机框架最早的天以来有内置的手柄调整,但通过内线3,它仅限于调整的DOM元素。现在4 Ext中的任何组件可以调整大小通过的新Ext.resizer.Resizer及其相关组件。这主要是适用于浮动元件或组件编程以外的Ext的集装箱系统呈现时非常有用。
通过配置与调整大小的一个组成部分:真实,缩放控制柄会自动添加到组件的边缘。默认情况下,代理元素的大小被调整使用鼠标,鼠标调整大小和组件了。指定可调整大小的
Resizer的类作为配置对象的属性可以修改的大小调整行为。
ComponentDragger
分机也总是有广泛的拖放和拖放支持,但主要是在DOM元素水平。在4分机,任何组件都可以很容易地拖动以及通过新Ext.util.ComponentDragger类。这主要是浮动组件或组件编程Ext的集装箱系统之外提供有用的。
通过配置组件:真实与拖动,它会自动用鼠标拖动。拖动操作过程中,是由这个方法拖动(Windows的配置默认情况下,拖动自己)的面板显示一个空的鬼,在新的位置上鼠标向上显示面板或窗口。行为的dragger的,可以作为配置对象为ComponentDragger类指定拖动属性修改。
分离器
HBox和VBox布局可能包含Ext.resizer.Splitter组件,它用于管理其相邻的兄弟姐妹的大小。最小和最大大小设置支持。由默认情况下,调整屈曲的一个盒子布局的项目设置它的大小,在像素和删除的Flex值拆分的两个相邻的兄弟姐妹。可配置maintainFlex:真正的
调整操作后保持其柔性价值。
TabPanel
4 Ext中的许多其他组件,使TabPanel的主要件已作了Ext中的4成一流的组件。该标签本身,只是在内线3 DOM元素,现在是一个按钮的子类。TabBar包含的标签,现在是一个容器。这些变化提供更多的灵活性内线3。
由于标签是单独的组件从所包含的子面板,按住选项卡的内容,个别选项卡面板现在可以选择显示自己的标题标题栏分别从他们的选项卡标题。这是不可能的,在内线3。
工具栏
工具栏现在是一流的集装箱,这将使得添加新的组件和定制其布局比更容易在内线3。
主题化
Ext中的主题化一直是惊人的,但不容易定义,因为它可能是。内线3分离结构和视觉样式在这方面的进展,但仍有相当多的重复,浏览器特定的重写规则,是简单的CSS语言本身的弱点和许多其他问题。
资源
指南针和上海社会科学院
为Ext 4,我们完全改良后的主题系统,切换到 北斗 和 Sass 作为国内主要的CSS创作工具。上海社会科学院是一个超标准的CSS,增加了许多先进的功能支持:
- 嵌套的选择
- 变量
- 混入
- 选择继承
- 编制和容易压缩
- 不能够彻底清除组件的CSS需要您的具体应用
标记的变化
对于大多数组件,这是一个来自外部的巨大进步,内线现在支持浏览器/版本特定的标记。
文档
- 支持类新的系统结构(需要,混入等)
- 为@ deprected成员的支持
- 历史导航支持
- 嵌入式的例子,录像等。
- 最喜爱的主题
- 支持多个框架/版本
- 本地搜索