YUI2 и YUI3 действительно очень разные. Отличается от простого javascript против jQuery.
Вот пример установки цвета фона всех элементов данного класса на красный, чтобы проиллюстрировать разницу.
Первый в YUI2:
<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-min.js"></script>
<script src="http://yui.yahooapis.com/2.8.2r1/build/dom/dom-min.js"></script>
<script>
var YDom = YAHOO.util.Dom;
YDom.setStyle(YDom.getElementsByClassName('test'),'background-color','red');
</script>
Сейчас в YUI3:
<script src="http://yui.yahooapis.com/3.3.0/build/yui/yui-min.js"></script>
<script>
YUI().use('node',function(Y){
Y.all('.test').setStyle('background-color','red');
});
</script>
Обратите внимание на основные отличия:
В YUI2 вы сами включаете необходимые модули, используя тег <script>
. В YUI3 вы включаете только один файл сценария с тегом <script>
и загружаете все остальные, используя YUI().use
. В приведенном выше примере мы используем модуль node
в YUI3. YUI2 имеет модуль, который может выполнять автоматическую загрузку, но он сам по себе является отдельным модулем и не встроен в глобальный объект YAHOO.
YUI2 - традиционное императивное программирование: foo(bar())
, в то время как YUI3 использует цепочку.
YUI3 вынуждает вас писать весь код, связанный с YUI, внутри функции, поэтому выполняется в своей собственной области и предоставляет только объект YUI
для глобальной области. Это в основном режим ниндзя в других библиотеках.