Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Смишных картинок тред (https://javascript.ru/forum/offtopic/35821-smishnykh-kartinok-tred.html)

l-liava-l 15.12.2013 17:50

cyber,
http://vanilla-js.com/

Цитата:

ванильного JS

cyber 15.12.2013 17:58

l-liava-l, блин, если бы и не написал то и не вкурил бы что он про эту либу) (не сразказм)

cyber 15.12.2013 18:06

Стоп, Vanilla JS - это чистый jS ? O_O

kobezzza 15.12.2013 18:17

Цитата:

Сообщение от cyber (Сообщение 286759)
Стоп, Vanilla JS - это чистый jS ? O_O

ахахах) да :D это такой стёб, т.к. последнее время сложился стереотип, что "никто не пишет на js - все пишут на jQuery", вот решили поглумиться:)

cyber 15.12.2013 18:23

kobezzza, если не нужна сверх скорость то обычно использую чисты js)
Недавно сталкивался с либой типо мини версия jquery, только теперь не могу ее найти..

DjDiablo 15.12.2013 18:32

А зачем это нужно?
Лень после знакомства с jQuery прибегать к циклам ради установки класса или события выборке. Да и поиска в NodeList не хватает, я привык экономить запросы к dom. Это две главные претензии почему я против vanilla.js.

kobezzza 15.12.2013 18:39

Цитата:

Сообщение от cyber (Сообщение 286765)
kobezzza, если не нужна сверх скорость то обычно использую чисты js)
Недавно сталкивался с либой типо мини версия jquery, только теперь не могу ее найти..

zepto.js

Понимаешь, jQuery не решает (ну почти не решает) тех проблем, которые существуют при современной разработке веб приложений. Это просто кроссбраузерный костыль для работы с DOM + небольшая библиотека.

В добавок ко всему jQuery использует старые подходы и алгоритмы, т.к. к примеру модуль animate использует программную анимацию, вместо CSS, а в 90% случаев она нах не нужна и в 100 раз лучше юзать простую как топор либу на чистом CSS - animate.css

jQuery использует тормозной аналог WeakMap для обхода утечек памяти на круговых ссылка в старых Ишаках - jQuery.cache. Это очень сильно тормозит операции удаления узлов.

Движок селекторов jQuery, кроме как лишний тормозов ничего супер нового не даёт, я ни разу в жизни не создавал свои фильтры для Sizzle, т.к. не вижу в этом абсолютно никакой нужды.

jQuery ничего не говорит про организацию кода в приложении и подгрузку модулей, т.е. уже по любому придётся юзать дополнительные либы.

jQuery ничего не говорит про паттерновые решения MVC, MVP и т.д.

Стандартный UI jQuery выполнен на детсадовском уровне, а сам фреймворк UI использует морально устаревшие концепции и подходы и не развивается.

Over9000 плагинов выполнены откровенно ужасно.

Удобные враперы для работы с DOM - пишутся самостоятельно за пару часов и весят 1-2 килобайта. Если нужна кроссбраузерность для динозавров - юзайте либы полифилы.

Работа с асинхронность в jQuery выполнена в стиле promises и на мой взгляд простой асинхронный forEach из Async в 100 раз удобнее, гибче и лучше.

Вот и получается, что 60 килобайт jQuery держат из-за EventEmitter, который можно уложить опять таки в 1-2 килобайта кода и есть отдельные библиотеки, вроде EventEmitter2 (который реализует АПИ ноды).

ЗЫ: я много лет юзал jQuery, но сейчас я не вижу никаких задач, где мне бы он пригодился, я уверен, что через 5 лет либо кверя эволюционирует хз во что, либо просто забудется.

kobezzza 15.12.2013 18:42

Цитата:

Сообщение от DjDiablo (Сообщение 286766)
А зачем это нужно?
Лень после знакомства с jQuery прибегать к циклам ради установки класса или события выборке. Да и поиска в NodeList не хватает, я привык экономить запросы к dom. Это две главные претензии почему я против vanilla.js.

Я давно использую общий итератор для всех сущностей JS: поэтому мне без разницы что я засунул в forEach массив или коллекцию узлов, и jQuery мне не нужен.

Более того, в новом стандарте JS добавили новый вид цикла for-of, который работает совместно с генераторами, т.е. с помощью него можно итерировать любую сущность.

DjDiablo 15.12.2013 18:48

Цитата:

Сообщение от kobezzza (Сообщение 286769)
Я давно использую общий итератор для всех сущностей JS: поэтому мне без разницы что я засунул в forEach массив или коллекцию узлов, и jQuery мне не нужен.

Более того, в новом стандарте JS добавили новый вид цикла for-of, который работает совместно с генераторами, т.е. с помощью него можно итерировать любую сущность.

Да не хочу я нечего итерировать.
Я хочу написать выборка.on ('события', обработчик) и чтобы обработчик был на каждом элементе выборки. Мне нафик ненужны лишние циклы если я могу решить это одной строчкой

kobezzza 15.12.2013 18:49

Цитата:

Сообщение от DjDiablo (Сообщение 286770)
Да не хочу я нечего итерировать.
Я хочу написать выборка.on ('события', обработчик) и чтобы обработчик был на каждом элементе выборки. Мне нафик ненужны лишние циклы если я могу решить это одной строчкой

Ну так все и делают: юзают нано обёртку над ванилой, где заложены эти вещи, зачем тащить ради этого 60кб кода, когда нужный функционал это 1кб? Я лучше эти 60кб потрачу на загрузку UI.

Пример из кода:
// DOM - это обёртка над NodeList или HTMLCollection
DOM.prototype.addClass = function (...className) {
	$C(this).forEach((el) => {
		 el.addClass.apply(el, className);
	});

	return this;
};


Часовой пояс GMT +3, время: 05:53.