Non sono stato coinvolto in una migrazione, ma ho contribuito alla galleria YUI 3 e so anche che esiste una voce della galleria che consente a qualsiasi classe di YUI 2 di essere utilizzata in YUI 3. Suppongo che la principale il vantaggio di YUI 3 è la possibilità di caricare ciò che si desidera su richiesta. Si include 1 file javascript e quindi si utilizzerà la seguente riga per utilizzare qualsiasi modulo in yui desiderato.
YUI().use('dom',function(){
// your code here
});
Il vantaggio di questo è il modulo DOM e rende SOLO disponibile nell'ambito di tale funzione. Questo è buono perché carica solo i moduli che desideri in un ambito specifico. Ciò impedirà gli scontri con qualsiasi altro framework JS se li usi.
Se vuoi aggiungere la tua modulo personalizzato si dovrebbe fare qualcosa di simile
YUI().add('mycustompackage',function(Y){
MyCustom.package.SomeClass = function(){}
MyCustom.package.SomeClass.prototype = {}
},'1.0.0',{requires:['base','dom','event'],use:['node']});
che aggiungerà il modulo, e registrare le dipendenze, in modo quindi è possibile utilizzarlo dicendo
YUI().use('mycustompackage',function(){
// code goes here
});
Immagino da quello che posso vedere, i principali vantaggi sono una struttura più sicura e portatile. È possibile rendere SOLO i moduli YUI 3 disponibili nell'ambito di una determinata funzione. Si libera lo scopo principale della pagina per altre cose se lo si desidera. È anche più sicuro, la definizione delle tue funzioni è in un ambito privato, quindi non hanno ganci a variabili globali da sfruttare tramite l'iniezione di script o cosa no.
Prenderesti in considerazione il passaggio da YUI 2 a ExtJS 3? – Upperstage
In realtà, non sembra molto "personalizzabile" ... Ma non ne ho abbastanza di conoscenza ... – Arno