Вы пока еще не знаете JS: область видимости и замыкания
Хотите глубже понять JavaScript? Книга Кайла Симпсона из серии "Вы пока еще не знаете JS" - отличный старт. Автор честно признается: никто не знает JS полностью, но с этой книгой вы точно прокачаете свои навыки.
Книга разбирает два столпа языка: лексические области видимости (как правильно размещать переменные и функции, чтобы избежать хаоса) и замыкания (магия, которая позволяет функциям "запоминать" окружение и создавать мощные модули). Плюс, детальный разбор паттерна "Модуль" - для чистого и масштабируемого кода.
👉 @sWebDev | #книги
Хотите глубже понять JavaScript? Книга Кайла Симпсона из серии "Вы пока еще не знаете JS" - отличный старт. Автор честно признается: никто не знает JS полностью, но с этой книгой вы точно прокачаете свои навыки.
Книга разбирает два столпа языка: лексические области видимости (как правильно размещать переменные и функции, чтобы избежать хаоса) и замыкания (магия, которая позволяет функциям "запоминать" окружение и создавать мощные модули). Плюс, детальный разбор паттерна "Модуль" - для чистого и масштабируемого кода.
👉 @sWebDev | #книги
❤1
Сохранение состояния
Что обеспечивает хук
Посмотреть ответ.
👉 @sWebDev
Что обеспечивает хук
useLocalStorage, в отличие от обычного useState?Посмотреть ответ.
👉 @sWebDev
❤1
Что обеспечивает хук useLocalStorage, в отличие от обычного useState?
Anonymous Quiz
6%
Автоматическую синхронизацию состояния между разными компонентами.
91%
Сохранение состояния между сессиями браузера через localStorage.
2%
Ускоренную работу с состоянием за счет кэширования в памяти.
1%
Валидацию типов данных при изменении состояния.
👍3❤1
Оптимизация событий с помощью debounce
Иногда функция вызывается слишком часто — например, при вводе в поисковую строку или скролле страницы. Это перегружает приложение.
Пример:
Теперь запрос отправляется только через 500 мс после остановки ввода, а не при каждом нажатии клавиши.
👉 @sWebDev
Иногда функция вызывается слишком часто — например, при вводе в поисковую строку или скролле страницы. Это перегружает приложение.
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
👍3❤1