Frontender Libs - обзор библиотек JS / CSS
8.34K subscribers
2.03K photos
735 videos
3 files
240 links
Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront

Менеджер по рекламе: @Spiral_Yuri

Купить рекламу: https://telega.in/c/sWebDev
Download Telegram
Вы пока еще не знаете JS: область видимости и замыкания

Хотите глубже понять JavaScript? Книга Кайла Симпсона из серии "Вы пока еще не знаете JS" - отличный старт. Автор честно признается: никто не знает JS полностью, но с этой книгой вы точно прокачаете свои навыки.

Книга разбирает два столпа языка: лексические области видимости (как правильно размещать переменные и функции, чтобы избежать хаоса) и замыкания (магия, которая позволяет функциям "запоминать" окружение и создавать мощные модули). Плюс, детальный разбор паттерна "Модуль" - для чистого и масштабируемого кода.

👉 @sWebDev | #книги
1
Сохранение состояния

Что обеспечивает хук useLocalStorage, в отличие от обычного useState?

Посмотреть ответ.

👉 @sWebDev
1
Оптимизация событий с помощью debounce

Иногда функция вызывается слишком часто — например, при вводе в поисковую строку или скролле страницы. Это перегружает приложение.

useDebounce в React помогает запускать действие только после того, как пользователь перестал что-то делать.
import { useEffect, useState } from "react";

function useDebounce<T>(value: T, delay: number) {
const [debounced, setDebounced] = useState(value);

useEffect(() => {
const id = setTimeout(() => setDebounced(value), delay);
return () => clearTimeout(id);
}, [value, delay]);

return debounced;
}


Пример:
const [query, setQuery] = useState("");
const debouncedQuery = useDebounce(query, 500);

useEffect(() => {
if (debouncedQuery) {
fetch(`/api/search?q=${debouncedQuery}`);
}
}, [debouncedQuery]);


Теперь запрос отправляется только через 500 мс после остановки ввода, а не при каждом нажатии клавиши.

👉 @sWebDev
👍31
На чьей вы стороне?

❤️ - фронтед.

👍 - бэкенд.

👉 @sWebDev | #юмор

👉 @sWebDev
9👍7🤔1