LeaderLine
Библиотека предназначена для отрисовки SVG-линий между произвольными DOM-элементами. Инструмент автоматически рассчитывает путь и положение линии, обновляя их при прокрутке или изменении размеров страницы. Подойдет для создания визуальных связей, аннотаций или простых диаграмм в интерфейсе.
👉 @sWebDev
Библиотека предназначена для отрисовки SVG-линий между произвольными DOM-элементами. Инструмент автоматически рассчитывает путь и положение линии, обновляя их при прокрутке или изменении размеров страницы. Подойдет для создания визуальных связей, аннотаций или простых диаграмм в интерфейсе.
👉 @sWebDev
👍3❤1
Жизненный цикл
В какой момент жизненного цикла компонента флаг в хуке
Забыли? Вернитесь к посту от01.09.2025 .
👉 @sWebDev
В какой момент жизненного цикла компонента флаг в хуке
useIsMounted
устанавливается в значение false
?Забыли? Вернитесь к посту от
👉 @sWebDev
👍2
В какой момент жизненного цикла компонента флаг в хуке useIsMounted устанавливается в значение false?
Anonymous Quiz
30%
Сразу после первого рендеринга.
47%
Непосредственно перед размонтированием компонента.
19%
При каждом обновлении состояния компонента.
5%
Когда асинхронная операция завершается с ошибкой.
👍3❤1
Управление состоянием с сохранением в LocalStorage
В React хук
Теперь можно использовать его, как обычный
👉 @sWebDev
В React хук
useLocalStorage
сохраняет состояние в localStorage
. При инициализации берёт данные из него (если есть), при обновлении — синхронно записывает. Удобно для темы, языка и других настроек, сохраняемых между сессиями.import { useState, useEffect } from 'react';
function useLocalStorage<T>(key: string, initialValue: T) {
const [value, setValue] = useState<T>(() => {
try {
const storedValue = localStorage.getItem(key);
return storedValue ? JSON.parse(storedValue) : initialValue;
} catch {
return initialValue;
}
});
useEffect(() => {
try {
localStorage.setItem(key, JSON.stringify(value));
} catch {
// Игнорируем ошибки (например, если storage переполнен)
}
}, [key, value]);
return [value, setValue] as const;
}
Теперь можно использовать его, как обычный
useState
, но с автоматическим сохранением.👉 @sWebDev
❤2👍1
Skeleton Click Me Load More
Как внедрить? Рассмотрим два варианта:
1. CSS-анимация shimmer:
2. React/Vue:
Показываем <Skeleton /> вместо контента при
👉 @sWebDev | #полезные_сниппеты
Skeleton Click Me Load More
- это серые «заглушки», которые показываются до загрузки данных. Пользователь сразу видит структуру страницы и не думает, что сайт завис. Такой приём снижает число уходов и делает интерфейс визуально быстрее.Как внедрить? Рассмотрим два варианта:
1. CSS-анимация shimmer:
.skeleton {
background: linear-gradient(90deg,#eee 25%,#ddd 50%,#eee 75%);
background-size: 200% 100%;
animation: shimmer 1.5s infinite;
}
2. React/Vue:
Показываем <Skeleton /> вместо контента при
loading=true
.👉 @sWebDev | #полезные_сниппеты
❤2
CSS Custom Highlight API
Стилизация текста - важная задача для Frontend-разработчика. CSS Custom Highlight API позволяет управлять внешним видом выделенных диапазонов, делая акценты гибкими и удобными. В статье разбираем основы работы API и показываем, как создавать и применять стилизованные выделения на практике.
👉 @sWebDev
Стилизация текста - важная задача для Frontend-разработчика. CSS Custom Highlight API позволяет управлять внешним видом выделенных диапазонов, делая акценты гибкими и удобными. В статье разбираем основы работы API и показываем, как создавать и применять стилизованные выделения на практике.
👉 @sWebDev
🔥1
Node js разработка приложений в микросервисной архитектуре с нуля
Книга Юлии Поповой «Node.js: разработка приложений в микросервисной архитектуре с нуля», вышедшая в апреле 2024 года, представляет собой практическое руководство для разработчиков от уровня джун и выше. В ней показан процесс создания микросервисов на Node.js с использованием NestJS и других популярных инструментов. Несмотря на формулировку «с нуля» в названии, материал рассчитан на тех, кто уже знаком с JavaScript, TypeScript и NestJS. Автор сосредотачивается не на теории, а на практических приемах построения масштабируемых микросервисных приложений.
👉 @sWebDev | #курсы_книги
Книга Юлии Поповой «Node.js: разработка приложений в микросервисной архитектуре с нуля», вышедшая в апреле 2024 года, представляет собой практическое руководство для разработчиков от уровня джун и выше. В ней показан процесс создания микросервисов на Node.js с использованием NestJS и других популярных инструментов. Несмотря на формулировку «с нуля» в названии, материал рассчитан на тех, кто уже знаком с JavaScript, TypeScript и NestJS. Автор сосредотачивается не на теории, а на практических приемах построения масштабируемых микросервисных приложений.
👉 @sWebDev | #курсы_книги
❤1
Если React-хук для адаптивного UI использует начальное значение для серверного рендеринга, что произойдет с этим значением на стороне клиента после гидратации?
Anonymous Quiz
49%
Оно обновляется в соответствии с реальными размерами окна браузера.
20%
Оно всегда остается равным серверному значению по умолчанию.
10%
Оно сбрасывается в null до первого изменения размеров окна.
22%
Оно вызывает ошибку, если не совпадает с серверным значением.
❤1👍1
Поведение на клиенте
Если React-хук для адаптивного UI использует начальное значение для серверного рендеринга, что произойдет с этим значением на стороне клиента после гидратации?
Посмотреть ответ.
👉 @sWebDev
Если React-хук для адаптивного UI использует начальное значение для серверного рендеринга, что произойдет с этим значением на стороне клиента после гидратации?
Посмотреть ответ.
👉 @sWebDev
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
Отслеживание размеров окна
React хук
Хук возвращает объект
👉 @sWebDev
React хук
useWindowSize
отслеживает размеры окна браузера для адаптивных интерфейсов. В SSR, где window
недоступен, хук использует начальные значения (defaultWidth, defaultHeight)
. После гидратации размеры обновляются.import { useState, useEffect } from 'react';
function useWindowSize(defaultWidth = 0, defaultHeight = 0) {
const [windowSize, setWindowSize] = useState({
width: defaultWidth,
height: defaultHeight,
});
useEffect(() => {
const handleResize = () => {
setWindowSize({
width: window.innerWidth,
height: window.innerHeight,
});
};
handleResize();
window.addEventListener('resize', handleResize);
return () => window.removeEventListener('resize', handleResize);
}, []);
return windowSize;
}
Хук возвращает объект
{ width, height }
для динамической адаптации UI.👉 @sWebDev
❤1👍1
Как frontend-разработчику получить оффер в Bigtech?
Ты вроде бы уже не джун, но всё равно чувствуешь, что топчешься на месте? Рынок перегрет, требований всё больше, а откликов — всё меньше? На собесах валят на алгоритмах или просят "нарисовать" архитектуру, как будто ты ведущий.
При этом вокруг кто-то постоянно получает офферы в Яндекс или VK, а у тебя не получается даже дойти до финального этапа? Хочется стабильности, интересных задач и наконец-то попасть в сильную команду...
В своем канале:
👉 публикую видео с решением задач, которые прямо сейчас дают крупные компании на собеседованиях
👉даю примеры по прохождению собеседований
👉разбираю резюме и докручиваю резюме подписчиков
👉и просто создаю дружелюбное, комфортное сообщество, где коллеги всегда готовы подсказать и поддержать
🎁В закрепе тебя ждёт подборка из 60 задач, которые сейчас дают на собеседованиях Яндекс, Т-Банк и другие крупные IT игроки.
Подписывайся и получай максимум пользы, а нас уже больше 3500 🤓: frontend_punks
Реклама, erid: 2W5zFGkvG3S ИП Галактионов Тихон Витальевич, ИНН 771618975809
Ты вроде бы уже не джун, но всё равно чувствуешь, что топчешься на месте? Рынок перегрет, требований всё больше, а откликов — всё меньше? На собесах валят на алгоритмах или просят "нарисовать" архитектуру, как будто ты ведущий.
При этом вокруг кто-то постоянно получает офферы в Яндекс или VK, а у тебя не получается даже дойти до финального этапа? Хочется стабильности, интересных задач и наконец-то попасть в сильную команду...
Меня зовут Тихон, привет! Я — действующий Frontend-разработчик и ментор. Помогаю устроиться на хорошие позиции в Bigtech и сопровождаю на испытательном сроке.
В своем канале:
👉 публикую видео с решением задач, которые прямо сейчас дают крупные компании на собеседованиях
👉даю примеры по прохождению собеседований
👉разбираю резюме и докручиваю резюме подписчиков
👉и просто создаю дружелюбное, комфортное сообщество, где коллеги всегда готовы подсказать и поддержать
🎁В закрепе тебя ждёт подборка из 60 задач, которые сейчас дают на собеседованиях Яндекс, Т-Банк и другие крупные IT игроки.
Подписывайся и получай максимум пользы, а нас уже больше 3500 🤓: frontend_punks
Реклама, erid: 2W5zFGkvG3S ИП Галактионов Тихон Витальевич, ИНН 771618975809