Frontender Libs - обзор библиотек JS / CSS
8.56K subscribers
1.98K photos
718 videos
1 file
230 links
Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront

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

Купить рекламу: https://telega.in/c/sWebDev
Download Telegram
Media is too big
VIEW IN TELEGRAM
Glow effect to LineBasicMaterial without bloom

Эффект свечения для линий без Bloom-фильтра в Three.js.

👉 @sWebDev
3👍1
Оптимизация TypeScript-типов в больших проектах

В крупных проектах проверка типов в TypeScript может стать серьёзным узким местом, замедляя сборку и работу IDE. Статья разбирает неочевидные проблемы производительности, связанные со сложными типами, и предлагает конкретные подходы к их оптимизации. Полезно для тех, кто работает с большими кодовыми базами и ищет способы ускорить работу с TypeScript.

👉 @web_craft | #frontend
2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Glitchy GSAP animated checkboxes

Анимированные чекбоксы на GSAP.

👉 @sWebDev
👍3
Probot

Probot — фреймворк для создания GitHub-приложений на JavaScript. Предназначен для автоматизации рабочих процессов и задач в репозиториях, например, для комментирования pull-реквестов или проверки стиля кода. Подходит для команд и разработчиков, стремящихся упростить управление репозиториями и рутинные операции.

👉 @sWebDev
2
Механизм защиты данных в RSC

Какую проблему решают функции
taintObjectReference и taintUniqueValue?

Забыли? Вернитесь к посту от 30.06.2025.

👉 @sWebDev
2
Что для вас идеальный релиз?

👍 — Тот, который прошел в пятницу вечером, и за выходные не пришло ни одного алерта.

❤️ — Тот, который вообще состоялся.

👉 @sWebDev | #юмор
👍41
Уточнение типов для дочерних элементов

При типизации children в React-компонентах часто используют ReactNode. Данный тип, принимающий JSX, строки, числа и null, достаточно гибкий. Однако для создания более строгого API лучше подходит ReactElement.

Он представляет собой только результат вызова React.createElement, исключая примитивные типы вроде строк или чисел. Данный подход полезен для компонентов-оберток, которые должны работать только с другими React-компонентами, например, для клонирования или анализа их пропсов, делая их поведение более предсказуемым.

import { ReactNode, ReactElement } from 'react';

// ReactNode принимает почти любые значения
const FlexibleContainer = ({ children }: { children: ReactNode }) => {
return <div>{children}</div>;
};

// ReactElement принимает только React-элементы
const StrictContainer = ({ children }: { children: ReactElement }) => {
return <div>{children}</div>;
};


👉 @sWebDev
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Draggable Sidepanel

Перетаскиваемая панель на Draggable.js.

👉 @sWebDev
👍5
Когда потратил на кастомные кейкапы больше, чем на курсы.

👍 — Эстетика рабочего пространства важна.

❤️ — Главное чтобы цвет кейкапов совпадал с цветом подсветки на проекторе.

🤔 — Он не бесполезный, он ночью светится.

👉 @sWebDev | #юмор
2👍1🤔1
Es-toolkit

Es-toolkit — утилитарная JavaScript-библиотека, созданная как современная альтернатива Lodash. Содержит набор полезных функций (debounce, chunk, sum и другие), но с фокусом на производительность и малый размер.

👉 @sWebDev
👍4
Media is too big
VIEW IN TELEGRAM
Color Spectrum Layout

Анимация фона с настраиваемым градиентом на GSAP.

👉 @sWebDev
👍3
Подводные камни URL Search Params в React

Хранение состояния в URL-параметрах кажется простым решением, но под поверхностью скрывается масса проблем. Статья рассматривает неочевидные сложности: от отсутствия типобезопасности и валидации до управления частотой обновлений и миграции схем.

👉 @sWebDev
2
This media is not supported in your browser
VIEW IN TELEGRAM
Draggable Infinite Slider

Кастомный слайдер на GSAP.

👉 @sWebDev
3👍1
Swagger UI

Работать с чужим API вслепую — долго и неудобно. Swagger UI решает эту проблему, автоматически создавая интерактивную документацию из спецификации OpenAPI. Инструмент генерирует наглядный интерфейс, где можно не только изучить все эндпоинты, но и сразу отправить тестовые запросы.

👉 @sWebDev
2
Контроль навигации

Какова основная задача гарда CanDeactivateFn?

Забыли? Вернитесь к посту от 07.07.2025.

👉 @sWebDev
1
Что хуже?

👍 — Работать без четкого ТЗ.

🤔 — Работать по четкому ТЗ, которое меняется каждый день.

❤️ — Страшнее всего — работать над проектом, в успех которого не верит никто, включая тебя.

👉 @sWebDev | #юмор
11🤔2👍1👎1
Отложенное выполнение эффектов

Для эффектов, срабатывающих с задержкой после изменений, создают хук useDebouncedEffect. Он инкапсулирует логику setTimeout внутри useEffect. При обновлении зависимостей хук отменяет предыдущий таймер и устанавливает новый, вызывая колбэк по истечении задержки. Важную роль играет функция очистки useEffect, отвечающая за сброс таймера.

import { useEffect, useState } from 'react';

const useDebouncedEffect = (effect, deps, delay) => {
useEffect(() => {
const handler = setTimeout(() => effect(), delay);
return () => clearTimeout(handler);
}, [...(deps || []), delay]);
};

function SearchComponent() {
const [searchTerm, setSearchTerm] = useState('');

useDebouncedEffect(() => {
// Логика отправки запроса на сервер
console.log(`Отправка запроса: ${searchTerm}`);
}, [searchTerm], 500);

return (
<input
type="text"
value={searchTerm}
onChange={(e) => setSearchTerm(e.target.value)}
placeholder="Поиск..."
/>
);
}


👉 @sWebDev
2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Pick a Card

Интерактивная сцена с колодой карт на GSAP и Draggable.js.

👉 @sWebDev
👍3