我没有参与迁移,但我已经为YUI 3画廊做出了贡献,而且我也知道有一个画廊条目允许YUI 2中的任何一个类在YUI 3中使用.我想YUI 3的主要优点能够根据需要加载您想要的东西.你包含1个javascript文件,然后使用以下行来使用你想要的任何模块.
YUI().use('dom',function(){
// your code here
});
Run Code Online (Sandbox Code Playgroud)
这样做的好处是它可以使用DOM模块,并且仅在该功能的范围内可用.这很好,因为它只在特定范围内加载您想要的模块.如果您使用它们,这将防止与任何其他JS框架的冲突.
如果你想添加自己的自定义模块,你会做这样的事情
YUI().add('mycustompackage',function(Y){
MyCustom.package.SomeClass = function(){}
MyCustom.package.SomeClass.prototype = {}
},'1.0.0',{requires:['base','dom','event'],use:['node']});
Run Code Online (Sandbox Code Playgroud)
这将添加您的模块,并注册依赖项,因此您可以使用它来说
YUI().use('mycustompackage',function(){
// code goes here
});
Run Code Online (Sandbox Code Playgroud)
我想从我所看到的,主要优点是更安全和可移植的框架.您可以仅在给定的功能范围内使YUI 3模块可用.如果您愿意,这可以释放其他内容的页面主要范围.它也更安全,你的函数的定义在私有范围内,所以它们没有全局变量钩子可以被脚本注入利用或什么不利用.