<rmcreative>

RSS

YUI 3.0.0

30 сентября 2009

Yahoo зарелизил третью версию своего JavaScript-фреймворка YUI.

На общий стиль нового API явно повлиял jQuery:

YUI().use("node", function(Y) {
    Y.one("#message").setContent("Hello, World!");
});

Вкусности:

  • Лёгкое ядро (6.2 Кб) с возможностью подгружать модули при помощи YUI().use() неблокирующими HTTP-запросами.

  • Лёгкий и быстрый движок селекторов.

  • Хорошая документация.

Пробуем

Комментарии RSS

  1. №1872
    Octane
    Octane 30.09.2009, 23:50:52

    Преимущество в синтаксисе над jQuery в том, что он всетаки иногда не скрывает с каким количеством элементов мы работаем:~~~ [javascript] Y.all('#demo li').addClass('bar'); Y.one('#demo').get('children').addClass('bar');

    Хотя всеравно, если не видим начало цепочки (селектор в jQuery), не можем сразу определить работаем мы с одним элементом или сразу с коллекцией, а из-за этого в jQuery иногда подолгу приходится искать возникающие неявные ошибки, например, когда точно знаем что работаем с одним элементом, то просто вылетает из головы тот факт, что jQuery продолжает работать с коллекцией из одного элемента, и когда этот элемент оказывается по каким-то причинам не найденным, то проблему в этом начинаешь искать в последний момент, когда уже не понятно, почему же ничего не происходит в цепочке.
    
    
    
    Всетаки мне мой вариант больше нравится :)~~~
    [javascript]
    $('elementId').remove(); // работа с одним элементом,
    // причем если он не существует, произойдет ошибка.
    
    $.findClass('foo').each('remove'); // выполнить метод remove для все найденных элементов
    

    Всегда видим, с чем работаем, и где возможна ошибка.

    Эх надо взяться доделать модуль анимации и сайт для фреймворка.

  2. №1873
    Sam
    Sam 01.10.2009, 2:54:43

    Кстати, хотел как-то отписать и забыл:

    $("list").child().each("addClass", "some");

    Тут не очень понятно, что child отдаст много элементов. Если бы назывался метод children (хотя такой уже и есть), было бы понятней.

  3. №1874
    Sam
    Sam 01.10.2009, 2:55:12

    Это про js-core.

  4. №1875
    Octane
    Octane 01.10.2009, 8:51:53

    Да, тут неудачно вышло, нужно было как-то назвать метод, который ищет элементы на первом уровне вложенности, ничего кроме childNodes или childElements в голову не приходило, но чтобы избежать путаницы с одноименным геттером и сократить название, просто оставил child. Метод children аналогичен getElementsByTagName, только позволяет указать сразу несколько тегов.

    Есть предложения, как лучше назвать? В следующей версии сделаю :) оставить обратную совместимость не проблема.

  5. №1878
    Sam
    Sam 01.10.2009, 14:42:58

    М… тут по идее у тебя перепутаны child и descendant. т.е. children("li") → descendant("li"), child() → children().

  6. №1879
    Octane
    Octane 01.10.2009, 16:41:08

    Descendants сложновато для запоминания и написания, но так действительно понятней будет, наверное, так и сделаю в следующей версии.

  7. №1881
    Прохожий
    Прохожий 02.10.2009, 8:31:39

    Не проще назвать childs? как бы понятно, множественное число... нет?

  8. №1882
    Sam
    Sam 02.10.2009, 11:37:02

    В английском нет childs. Есть только child и children.

  9. №1889
    plandem
    plandem 06.10.2009, 17:22:13

    а в jquery по-умолчанию надо воспринимать, что все возвращается как "коллекция", даже если ни одного элемента не было найдено. Для этого там и есть eq(N) и get(N), чтобы получить нужный элемент. Не знаю, мне jquery 1.5 года назад понравился цепочками в первую очередь и малым размером и нормальном базовом функционале. в YUI как-то было сыкотно закапываться, т.к. это по-сути "продукт" под себя, да и размер у него жесть. хотя эти заявленные 6кб - смущают, наверняка там совсем базовый.

  10. №1890
    plandem
    plandem 06.10.2009, 17:23:34

    хотя "привыкал" к такой идеалогии достаточно долго, слишком отличается от обычных оо языков :)

  11. №1891
    Тормоз
    Тормоз 06.10.2009, 23:22:49

    Заинтересовался YUI, многие примеры очень впечатляют и вообще я сильно уважаю Yahoo. Но, к сожалению, в Рунете очень мало информации по этой теме. А с моим английским самостоятельное изучение получается очень медленным. Хотя фигня, надо просто взяться и делать. Yahoo Pipes ведь прекрасно изучил :)

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.