如何将任何一个JavaScript框架(如jQuery、MooTools等)抽象出来,使其位于框架堆栈的底部?我想要的是这样一种情况:我可以轻松替换库,仅对框架的一层进行更改(例如不是每个模块),整个框架仍然可以正常运行。
因此,每个模块都应该调用一个框架函数,然后将其路由到库中。
如何将任何一个JavaScript框架(如jQuery、MooTools等)抽象出来,使其位于框架堆栈的底部?我想要的是这样一种情况:我可以轻松替换库,仅对框架的一层进行更改(例如不是每个模块),整个框架仍然可以正常运行。
因此,每个模块都应该调用一个框架函数,然后将其路由到库中。
Ext.getCmp()
在使用jQuery适配器时将使用jQuery.$()
。但是,这通常不是非常容易的一对一映射。
Ext JS最初是作为Yahoo UI Javascript库的扩展而启动的。那时,Ext依赖于YUI来处理其所有低级跨浏览器代码。现在,Ext是一个独立的JavaScript库,您可以选择用其他JavaScript库(如Prototype或jQuery)替代YUI。将低级别的Ext API映射到其他JavaScript库(或Ext自己的基本库)的源文件称为适配器,它们位于source/adapter子目录中。在您将Ext包含在网站中时,您可以选择要使用哪个适配器。
来源:Ext JS手册:源概述
你需要为你的框架编写适配器,每个工具包/库都需要一个适配器,就像ExtJS/Sencha所做的那样(尽管他们的适配器可能不可重用)。
首先,制定适配器应该具有哪些方法,它将作为你的框架低级API。
下一步是为每个可能的工具包/库编写适配器。某些库的适配器会很难编写,例如YUI,因为它们动态加载代码。你可能需要先编译一个带有所需功能的单个.js文件。
添加新的工具包/库,根据你的映射编写一个新的适配器。