Почему в реализации хука для отслеживания внешних кликов предпочтительно использовать событие mousedown вместо click?
Anonymous Quiz
18%
Событие mousedown имеет лучшую совместимость со старыми браузерами.
47%
Событие mousedown срабатывает до возможного удаления элемента из DOM.
20%
Событие mousedown содержит больше информации о координатах курсора.
15%
Событие mousedown проще перехватить на уровне документа.
👍4
Декларативная условная стилизация
Для условного применения inline-стилей в React часто создают объект стилей с помощью
Механизм основан на том, что выражение
👉 @sWebDev
Для условного применения inline-стилей в React часто создают объект стилей с помощью
if или тернарных операторов. Существует более лаконичный, декларативный подход с использованием spread-оператора (...) и логического оператора &&.Механизм основан на том, что выражение
условие && { стиль: 'значение' } вернет либо объект стилей, если условие истинно, либо false, если ложно. React при разворачивании (spread) falsy-значений (таких как false, null или undefined) внутри объекта просто игнорирует их, не добавляя никаких свойств. import React from 'react';
function AlertMessage({ text, isActive, isUrgent }) {
const baseStyles = {
margin: '10px 0',
padding: '15px',
borderRadius: '4px',
transition: 'all 0.2s ease-in-out',
};
const finalStyles = {
...baseStyles,
...(isActive && { background: '#f0f0f0' }),
...(isUrgent && { background: '#ffdddd', border: '1px solid red' }),
};
return <div style={finalStyles}>{text}</div>;
}
👉 @sWebDev
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Infinite Canvas
Интерактивный бесконечный холст с drag-and-drop на Canvas API и JavaScript.
👉 @sWebDev
Интерактивный бесконечный холст с drag-and-drop на Canvas API и JavaScript.
👉 @sWebDev
👍2
Curtains.js
Библиотека использует WebGL для превращения DOM-элементов, таких как изображения и видео, в интерактивные 3D-плоскости. Она значительно упрощает работу с шейдерами для добавления к обычным HTML-элементам сложных визуальных эффектов.
👉 @sWebDev
Библиотека использует WebGL для превращения DOM-элементов, таких как изображения и видео, в интерактивные 3D-плоскости. Она значительно упрощает работу с шейдерами для добавления к обычным HTML-элементам сложных визуальных эффектов.
👉 @sWebDev
❤3
🏎 Ищете выгодный пригон автомобиля из Европы?
Компания European Car Hub предлагает автомобили с ценами на 20-30% ниже рыночных!
🧐 Все машины проходят тщательную проверку: Большинство из них — почти новые. Растаможка с Европы составляет всего 30%. Всю работу с документами мы берём на себя.
European Car Hub – насладись покупкой авто без лишних хлопот!
Компания European Car Hub предлагает автомобили с ценами на 20-30% ниже рыночных!
🔴 Audi A8 (3.0 гибрид, автомат, полный привод)🔴 Kia Sportage (1.6 бензин, механика, передний привод)🔵 Volkswagen Tiguan (2.0 бензин, автомат, полный привод)🔵 Volkswagen Golf (1.5 бензин, механика, передний привод)
European Car Hub – насладись покупкой авто без лишних хлопот!
Please open Telegram to view this post
VIEW IN TELEGRAM
Создание сложных форм на Vue
Разметка для больших форм с десятками полей быстро становится громоздкой и трудной в поддержке. Статья показывает, как решить эту проблему в Vue с помощью компонентного подхода. Разбирается паттерн, где структура формы определяется в JSON, а поля генерируются динамически через
👉 @sWebDev
Разметка для больших форм с десятками полей быстро становится громоздкой и трудной в поддержке. Статья показывает, как решить эту проблему в Vue с помощью компонентного подхода. Разбирается паттерн, где структура формы определяется в JSON, а поля генерируются динамически через
v-for и переиспользуемый компонент ввода.👉 @sWebDev
👍4❤1
LeaderLine
Библиотека предназначена для отрисовки SVG-линий между произвольными DOM-элементами. Инструмент автоматически рассчитывает путь и положение линии, обновляя их при прокрутке или изменении размеров страницы. Подойдет для создания визуальных связей, аннотаций или простых диаграмм в интерфейсе.
👉 @sWebDev
Библиотека предназначена для отрисовки SVG-линий между произвольными DOM-элементами. Инструмент автоматически рассчитывает путь и положение линии, обновляя их при прокрутке или изменении размеров страницы. Подойдет для создания визуальных связей, аннотаций или простых диаграмм в интерфейсе.
👉 @sWebDev
👍4❤1
Жизненный цикл
В какой момент жизненного цикла компонента флаг в хуке
Забыли? Вернитесь к посту от01.09.2025 .
👉 @sWebDev
В какой момент жизненного цикла компонента флаг в хуке
useIsMounted устанавливается в значение false?Забыли? Вернитесь к посту от
👉 @sWebDev
👍3
В какой момент жизненного цикла компонента флаг в хуке useIsMounted устанавливается в значение false?
Anonymous Quiz
33%
Сразу после первого рендеринга.
44%
Непосредственно перед размонтированием компонента.
17%
При каждом обновлении состояния компонента.
6%
Когда асинхронная операция завершается с ошибкой.
👍4❤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
