Glfx.js
Glfx.js — JavaScript-библиотека для применения визуальных эффектов к изображениям с использованием WebGL. Включает размытие, контраст, кривизну, пикселизацию и другие фильтры. Подойдёт для фоторедакторов, медиаплатформ и визуальных экспериментов.
👉 @sWebDev
Glfx.js — JavaScript-библиотека для применения визуальных эффектов к изображениям с использованием WebGL. Включает размытие, контраст, кривизну, пикселизацию и другие фильтры. Подойдёт для фоторедакторов, медиаплатформ и визуальных экспериментов.
👉 @sWebDev
Результат выборки
Что будет содержать
Забыли? Вернитесь к посту от02.06.2025 .
👉 @sWebDev
Что будет содержать
QueryList
, если использовать ContentChildren
с read: TemplateRef
?Забыли? Вернитесь к посту от
👉 @sWebDev
Что будет содержать QueryList, если использовать ContentChildren с read: TemplateRef?
Anonymous Quiz
19%
Ссылки на директивы.
26%
Экземпляры компонентов.
10%
Строковые значения.
45%
Объекты TemplateRef.
Подписка на внешний стор с выборкой
Хук
При вызове хука можно передать
👉 @sWebDev
Хук
useSyncExternalStoreWithSelector()
используется для подписки на внешний стор с избирательным обновлением компонента. Он расширяет useSyncExternalStore()
за счёт функции выбора и сравнения: обновление вызывается только при изменении выбранного значения. Это снижает количество перерендеров при работе с глобальным состоянием.import { useSyncExternalStoreWithSelector } from 'react';
function useCustomStore(selector, isEqual) {
return useSyncExternalStoreWithSelector(
subscribe, // подписка на стор
getSnapshot, // получение полного состояния
getSnapshot, // серверный snapshot
selector, // выбор нужного значения
isEqual // функция сравнения
);
}
При вызове хука можно передать
selector
, чтобы отслеживать только часть состояния, и isEqual
, чтобы предотвратить обновление при эквивалентных значениях. Может пригодиться при подписке на сложные сторы, например, Redux без лишних обёрток.👉 @sWebDev
Media is too big
VIEW IN TELEGRAM
iNoBounce
iNoBounce — библиотека для отключения «резинового» скролла на мобильных устройствах iOS. Решает проблему неконтролируемой прокрутки за пределы контента.
👉 @sWebDev
iNoBounce — библиотека для отключения «резинового» скролла на мобильных устройствах iOS. Решает проблему неконтролируемой прокрутки за пределы контента.
👉 @sWebDev
Основы тестирования во Vue с использованием Vitest
В статье объясняется, как писать модульные тесты во Vue-проектах с использованием Vitest — современного и быстрого инструмента, совместимого с Vite. Разбираются базовые принципы, настройка окружения и примеры тестов для компонентов. Полезно тем, кто только осваивает тестирование во Vue и хочет понять, с чего начать.
👉 @sWebDev
В статье объясняется, как писать модульные тесты во Vue-проектах с использованием Vitest — современного и быстрого инструмента, совместимого с Vite. Разбираются базовые принципы, настройка окружения и примеры тестов для компонентов. Полезно тем, кто только осваивает тестирование во Vue и хочет понять, с чего начать.
👉 @sWebDev
Please open Telegram to view this post
VIEW IN TELEGRAM
SimplyCountdown.js
SimplyCountdown.js — JavaScript-библиотека для создания простого таймера обратного отсчёта. Не требует зависимостей, настраивается через HTML-атрибуты или JavaScript-объекты. Подойдёт для лендингов, акций, мероприятий и виджетов с ограниченным временем.
👉 @sWebDev
SimplyCountdown.js — JavaScript-библиотека для создания простого таймера обратного отсчёта. Не требует зависимостей, настраивается через HTML-атрибуты или JavaScript-объекты. Подойдёт для лендингов, акций, мероприятий и виджетов с ограниченным временем.
👉 @sWebDev
Хотите освоить JavaScript и собрать свой проект за полтора месяца?
Присоединяйтесь к Интенсиву — проекту Т-Образования. Учитесь очно в Москве или онлайн из любого города России.
Что вас ждет:
— 4—5 занятий в день: теория и практика вместе, каждый день вы пишете код;
— программа от техлидов и разработчиков Т-Банка — никакой воды, только рабочие инструменты;
— упор на JavaScript для фронтенд- и бэкенд-разработки;
— ускоренный формат с полным погружением;
— выпускной проект, который можно положить в портфолио и показать на собеседовании;
— обучение летом без пересечений с вузом.
Программа делится на два этапа:
— с 14 июля по 3 августа — основа языка, практика каждый день;
— с 4 по 24 августа — углубленные темы, командная работа, защита проекта.
Финал — не просто сертификат: лучшие участники смогут пройти собеседование в команду Т-Банка.
Для тех, кто будет учиться очно, интенсив это еще и комьюнити: экскурсии по офису, квизы, настольные игры и общение с теми, кто тоже хочет расти в ИТ.
Кому подойдет: студентам 2—4 курсов, которые готовы поработать летом и вырасти до реальных задач.
Регистрируйтесь уже сейчас
Присоединяйтесь к Интенсиву — проекту Т-Образования. Учитесь очно в Москве или онлайн из любого города России.
Что вас ждет:
— 4—5 занятий в день: теория и практика вместе, каждый день вы пишете код;
— программа от техлидов и разработчиков Т-Банка — никакой воды, только рабочие инструменты;
— упор на JavaScript для фронтенд- и бэкенд-разработки;
— ускоренный формат с полным погружением;
— выпускной проект, который можно положить в портфолио и показать на собеседовании;
— обучение летом без пересечений с вузом.
Программа делится на два этапа:
— с 14 июля по 3 августа — основа языка, практика каждый день;
— с 4 по 24 августа — углубленные темы, командная работа, защита проекта.
Финал — не просто сертификат: лучшие участники смогут пройти собеседование в команду Т-Банка.
Для тех, кто будет учиться очно, интенсив это еще и комьюнити: экскурсии по офису, квизы, настольные игры и общение с теми, кто тоже хочет расти в ИТ.
Кому подойдет: студентам 2—4 курсов, которые готовы поработать летом и вырасти до реальных задач.
Регистрируйтесь уже сейчас
Назначение preinit()
Для чего используется метод
Забыли? Вернитесь к посту от09.06.2025 .
👉 @sWebDev
Для чего используется метод
ReactDOM.preinit()
?Забыли? Вернитесь к посту от
👉 @sWebDev
Для чего используется метод ReactDOM.preinit()?
Anonymous Quiz
4%
Для удаления загруженных ресурсов.
11%
Для асинхронного рендера DOM.
1%
Для добавления компонента в дерево.
84%
Для предварительной регистрации ресурса до рендера.
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Защита от утечек данных в RSC
В React Server Components для предотвращения случайной утечки чувствительных данных на клиент существуют экспериментальные функции
👉 @sWebDev
В React Server Components для предотвращения случайной утечки чувствительных данных на клиент существуют экспериментальные функции
taintObjectReference
и taintUniqueValue
.taintObjectReference
помечает весь объект как небезопасный для клиента, а taintUniqueValue
— только конкретное значение в нём. При попытке передать такие "помеченные" данные в пропсы клиентского компонента React выбросит ошибку, блокируя утечку.// server-component.js
import { taintUniqueValue } from 'react';
import { ClientComponent } from './client-component';
async function getData() {
const data = {
publicInfo: 'Some data',
apiKey: 'SECRET-KEY-123'
};
taintUniqueValue(
'Ключ API не должен попасть на клиент.',
data,
data.apiKey
);
return data;
}
export default async function Page() {
const pageData = await getData();
// Эта передача вызовет ошибку
return <ClientComponent data={pageData} />;
}
👉 @sWebDev