2010-10-19 53 views
1

混合使用ExtJS具有用于与其他JavaScript库一起工作的“适配器”。但为什么?为什么不使用Ext Core?为什么要将ExtJS与jQuery/YUI/Prototype/

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

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

我是否缺少任何东西?

回答

4

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

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

我只能假设,作为组件集合演变成为更容易编写写的ExtJS的组件集的优化方式芯连接器,而不是依赖于bug修复外部库等

我个人补充说,使用Ext Core作为适配器,我感觉更加舒适,即使我更喜欢使用jQuery进行大量的DOM操作,但是我认为在使用组件时,如果基础适配器是Ext核心。

更新 - 根据您的更新问题

,我认为你缺少的是从内线核心和ExtJS的分离。

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

内线核心 - 一个跨浏览器的JavaScript库,用于增强网页的动态变化(部分DOM查询,DOM遍历/操控,Ajax请求等)

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

现在使用jQueryUI,你需要jQuery库,因为jQueryUI是建立在jQuery的TOP之上的。使用ExtJS,因为它是在原来的Ext Core存在之前建立在YUI之上的,所以如果你想使用ExtJS而不是Ext Core,但是使用jQuery或YUI适配器的话,你可以使用ExtJS。

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

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

+0

这大概总结起来。 – 2010-10-19 19:07:42

+0

看到我更新的问题。 – 2010-10-20 01:15:33

+0

我更新了我的答案。 – SBUJOLD 2010-10-20 16:12:45

1

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

看一看这太问题太:

Is jQuery compatible with ExtJS?

+0

看到我更新的问题。 – 2010-10-20 01:13:44

+0

这不是一个矛盾问题,因为Ext-Core重新实现了其他JavaScript工具箱库中已经存在的一些基本功能(DOM,AJAX等实用程序)。不要认为它将jQuery/YUI插入到ExtJS中,就像将ExtJS组件基础结构暴露给jQuery/YUI一样。无论您使用jQuery,YUI还是Ext-Core,在功能上可能没有太大区别,但由于不同的实现可能会影响性能。 – 2010-10-20 13:33:17