Комментарии 17
как стала, например, библиотека lodash для почти любых проектов на js.
вы серьезно? лодаш как стандарт в 2021 году? это такой же архаизм как и jQuery
Да в общем-то все с ней так… За тем исключением что я, например, не помню, когда последний раз её юзал для чего-либо кроме throttle и/или debounce.
лодаш был нужен когда ванильный js по сути ничего не умел — и функции вроде .union или .unique были полезны
с появлением es6 и новых фишек js — сейчас нет никакого смысла ставить для этого сторонние библиотеки
единственное для чего лодаш может понадобится сегодня — как уже справедливо заметили выше — это throttle и debounce — НО и их при желании можно реализовать без либ
Как часто вы пользуетесь стабильной сортировкой _.sortBy?
Как часто вам нужно итерировать объект без for of одним методом _.map?
Как часто вам нужно сгруппировать данные по какому либо признаку _.groupBy?
И подобных кейсов много, lodash лишь избавляет нас от велосипедов коллег по цеху, которые только начали свой путь восхождения в светлое будущее
есть много способов группировки — самый простой через reduce
насчет for of не очень понял — чем он плох? можно использовать Object.entries в качестве альтернативы
Извините, не слежу за тенденциями в вебе, а что не так с jQuery?
Что сейчас используют?
Что сейчас используют?Свои самопальные велосипеды, которые в 3 раза менее производительны и в 10 раз более многословны, но зато не jQuery.
я бы не сказал, главная проблема jQuery — отсутсвие поддержки промисов из коробки
писать на колбеках в 2021 году уже не комильфо — а если оборачивать методы jQuery промисами самостоятельно — то придется написать кучу кода
конечно есть готовые решения на npm вроде jquery-promise — но это все же для легаси-кода
Давно пользуюсь, это и вправду отличная библиотека, но примеры, на мой скромный взгляд, выбраны одни из самых скучных, среди всего того, на что она в действительности способна.
Click outside буквально вчера сделал, через директиву (спасибо stackoverflow):
// Click out side
const clickOutside = {
beforeMount: (el, binding) => {
el.clickOutsideEvent = (event) => {
// here I check that click was outside the el and his children
if (!(el == event.target || el.contains(event.target))) {
// and if it did, call method provided in attribute value
binding.value();
}
};
document.addEventListener("click", el.clickOutsideEvent);
},
unmounted: (el) => {
document.removeEventListener("click", el.clickOutsideEvent);
},
};
createApp(App)
.directive("click-outside", clickOutside)
.mount("#app");
VueUse — обязательная библиотека для Vue 3