首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >yui 2到yui-2-in-3

yui 2到yui-2-in-3
EN

Stack Overflow用户
提问于 2012-02-29 06:22:25
回答 1查看 466关注 0票数 2

我正在努力将YUI2代码更改为YUI 2合3形式。我需要在我的JS代码中访问Y.YUI2对象(雅虎对象)。

我需要这个对象是全局的,因为这个对象在JS代码中的数百个地方被使用,所以我想要一个更简单的方式来访问它,而不是通过回调来访问它每次我需要it.As时,我只有一个超文本标记语言文件,应该有一个更容易的方法。

我正在使用SimpleYUI。所以我的主要目标是让全局Y对象获得一个YUI2值,.I不能通过Y.use(.....)做到这一点。因为use()不会阻塞其余代码和下面的代码,所以它需要YAHOO对象。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2012-03-26 19:27:06

最近,我正在将我的项目从YUI 2.x迁移到YUI 3.x。在这里,我想分享我的经验和解决方案。

首先,我猜你写了一篇文章:"Working with YUI 2 in 3“(http://yuilibrary.com/yui/docs/yui/yui-yui2.html)。不幸的是,这种方法迫使您将所有现有的JS代码都包含到称为模块的新结构中,例如

代码语言:javascript
复制
YUI.add('mymodule-uses-yui2', function(Y) {

    var YAHOO = Y.YUI2;
    /* my old JS code based on YUI 2 placed here */

}, '1.0', {requires: 'yui2-modules'});

然后在沙箱中使用这些模块:

代码语言:javascript
复制
YUI().use('...', 'yui2-modules', 'mymodule-uses-yui2', function(Y) {
    var YAHOO = Y.YUI2;
});

这会导致在现有代码库上进行大量工作,以创建模块和更正依赖项。

我发现我可以在重写的第一阶段避免它:我一如既往地在脚本标签中统计地加载所有YUI 2组件。在这种情况下,全局YAHOO对象随处可用,并且我的旧代码可以正常工作。然后我开始用YUI 3写一个新的代码(或者重写旧代码),就像我的旧代码一样--一点也没有混淆!你也可以一步一步地将你的旧代码覆盖到新的时尚模块(YUI.add)中,同时仍然在那里使用全球雅虎( global YAHOO )(不使用Y.YUI2)。而且你不需要强迫你所有的力量一次将所有的旧代码都包含到新的模块中。

我还发现每次进入YUI().use(...)时,SimpleYUI比沙箱对我更有用。因为目前我在页面上有很多地方,我只需要一小部分JS代码。SimpleYUI做得更好,如果你在页面上有几个地方的代码,但还没有时间完成重构。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9490709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档