ExtJS有“适配器”用于处理其他JavaScript库。但为什么?为什么不直接使用Ext Core?
更新 我知道它是为YUI设计的。但为什么需要适配器?
ExtJs
使用ExtJs
命名空间,几乎所有其他框架
使用$
,它们永远不会发生冲突。jQuery
可以在没有任何适配器的情况下与他人合作。为什么Extjs需要它?我错过了什么吗?
答案 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问题: