为什么将ExtJS与jQuery / YUI / Prototype /混合

时间:2010-10-19 14:50:02

标签: extjs javascript

ExtJS有“适配器”用于处理其他JavaScript库。但为什么?为什么不直接使用Ext Core?

更新 我知道它是为YUI设计的。但为什么需要适配器?

  • ExtJs使用ExtJs命名空间,几乎所有其他框架 使用$,它们永远不会发生冲突。
  • jQuery可以在没有任何适配器的情况下与他人合作。为什么Extjs需要它?
  • 这些适配器是否提供了额外的功能?

我错过了什么吗?

2 个答案:

答案 0 :(得分:4)

我知道这里有一些人是早期ExtJS团队的一员,所以他们可能会有更好的答案,但基本上ExtJS是作为YUI的扩展而开始的,它使用YUI库来创建一组组件使用

然后使用适配器设计模式对其进行了修改,以支持那些已经使用jQuery或Prototype的人,这些人有一些优点:在页面上加载的JavaScript更少(如果你已经使用过jQuery,则不需要加载YUI图书馆)让编码员重新利用他们现有的技能。

我只能假设随着组件集的发展,编写以ExtJS组件集的优化方式编写的核心适配器变得更容易,而不依赖于外部库来修复错误等。

我个人补充说,使用Ext Core作为适配器我感觉更舒服,即使我更喜欢jQuery用于很多DOM操作,但我认为在使用组件时遇到错误的可能性较小适配器是Ext Core。

更新 -

根据您更新的问题,我认为您缺少的是与Ext Core和ExtJS的分离。

ExtJS - 允许构建富Internet应用程序的JavaScript组件库(主要是UI,但也包括数据类,主题等)。

Ext Core - 一个跨浏览器的JavaScript库,用于增强动态更改的网页(一些Dom查询,Dom遍历/操作,Ajax请求等)

如果你想比较jQuery世界,Ext Core = jQuery和ExtJS = jQueryUI。

现在使用jQueryUI,你需要jQuery库,因为jQueryUI是基于jQuery构建的。

使用ExtJS,因为它甚至在Ext Core存在之前就构建在YUI之上,如果你想使用ExtJS WITHOUT Ext Core,你可以使用例如jQuery或YUI适配器。

你不能在没有任何适配器的情况下使用ExtJS,就像没有jQuery就不能使用jQueryUI一样。

我希望这能回答你的问题。

答案 1 :(得分:1)

ExtJS过去是在YUI之上构建的,因此也创建了适用于其他库的适配器。我认为从版本1.1开始,ExtJS成为一个独立的框架,因此这些适配器现在是可选的。我认为适配器现在适合那些对其他库的基本框架更为熟悉的人,但是想要使用ExtJS库的某些组件(Ext的最大优势是他们的UI小部件工具包,恕我直言)。

看看这个SO问题:

Is jQuery compatible with ExtJS?