Frontender Libs - обзор библиотек JS / CSS
Открыть в Telegram
Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront Купить рекламу: https://telega.in/c/sWebDev
Больше7 542
Подписчики
-524 часа
-247 дней
-9630 день
Архив постов
Понимание внутренней работы Redux: как он устроен под капотом
Redux — библиотека для управления состоянием в экосистеме React, известная предсказуемыми обновлениями состояния и однонаправленным потоком данных. Статья углубляется во внутренние механизмы Redux, объясняя обработку действий, обновление состояния через редьюсеры и уведомление подписчиков. Понимание этих аспектов помогает эффективно отлаживать приложения и даже создавать собственные упрощённые версии Redux.
👉 @sWebDev
Another Metaballs
Анимация шаров на странице реализованная с Three.js и GSAP.
👉 @sWebDev
26–27 апреля проводим Weekend Offer Frontend
Устроиться в Яндекс за выходные — реально. Ищем крутых фронтендеров с опытом работы от 4 лет, готовых работать в офисном или гибридном режиме в России.
Подавайте заявку до 23 апреля — и всего за два дня пройдите все технические собеседования. После сможете пообщаться с нанимающими менеджерами и выбрать из 10 команд ту, которая покажется самой интересной. Если всё сложится хорошо, сразу же пришлём вам офер.
Узнать подробности и зарегистрироваться.
FormCatcher.js
formCatcher.js — легковесная библиотека для удобной валидации форм. Позволяет настроить правила проверки полей без сложного кода, предотвращая отправку некорректных данных. Отличное решение для лендингов и веб-приложений.
👉 @sWebDev
Крупнейший университет искусственного интеллекта
Временные ряды — это данные, упорядоченные во времени, например, трафик на дорогах, изменения температуры или спрос на товары. С помощью AI можно предсказывать тренды, выявлять аномалии и оптимизировать процессы.
Получите полный доступ к курсу по временным рядам на сайте. Это абсолютно бесплатно.
✨ 8 000+ студентов со всего мира
✨ 600+ AI-проектов, созданных студентами
✨ Сборная Университета — победители крупнейших AI-хакатонов России
✨ Стажировки в крупнейших компаниях России (РЖД, Ростелеком, РУДН, Совкомбанк, Самолет и другие)
✨ Трудоустраиваем выпускников в крупнейшие компании (Яндекс, ВТБ, Сбербанк, Роскосмос и другие)
Будем рады видеть тебя среди наших студентов!
Узнать больше
#реклама 16+
neural-university.ru
О рекламодателе
AI скоро сможет создавать сложные кодовые базы с нуля. Это повод волноваться?
👍 – Да, звучит серьезно!
❤️ – С нуля все могут, ты попробуй разобраться в том, что уже есть!
👉 @sWebDev | #юмор
Metaballs
Настраиваемая анимация шаров на Three.js и GSAP.
👉 @sWebDev
Принудительный ререндер в React
В React метод
flushSync() немедленно обновляет состояние и ререндерит компонент, обходя пакетирование. Это полезно, когда нужно сразу отобразить изменения перед выполнением других операций, например, измерения размеров DOM-элемента.
Обычно React группирует обновления в батчи, но иногда требуется мгновенный ререндер.
import { useState, useRef } from "react";
import { flushSync } from "react-dom";
function Example() {
const [text, setText] = useState("Исходное значение");
const spanRef = useRef(null);
function handleClick() {
flushSync(() => {
setText("Обновлённое значение");
});
console.log("Ширина:", spanRef.current.offsetWidth);
}
return (
<div>
<button onClick={handleClick}>Изменить</button>
<span ref={spanRef}>{text}</span>
</div>
);
}
flushSync() гарантирует, что offsetWidth обновится сразу после изменения текста.
👉 @sWebDevЕсть ли способ точнее объяснить, как работает HTML?
👍 – Это идеальная визуализация.
❤️ – Даже документация так чётко не объясняет.
🤔 – Добавьте ещё пару div-ов для надёжности.
👉 @sWebDev | #юмор
Дарим подписку на Яндекс Музыку
Ответьте на 1 вопрос и Яндекс Музыка ваша для вас и 3-х ваших близких.
Кинопоиск и Яндекс Книги тоже в подписке.
Попробуйте бесплатно❤️
Попробовать
#реклама 18+
music.yandex.ru
О рекламодателе
Реклама на Яндексе
Что делает resolveForwardRef() при передаче ему объекта?
Работа с resolveForwardRef()
Что делает
resolveForwardRef() при передаче ему объекта?
Забыли? Вернитесь к посту от 10.03.2025.
👉 @sWebDevScrollSpy.js
ScrollSpy.js — это легковесная библиотека для отслеживания появления элементов в области просмотра. Она позволяет удобно активировать анимации, загружать контент или изменять состояние элементов при прокрутке страницы.
👉 @sWebDev
CPChallenge: Bugs
Анимация бабочек на Three.js.
👉 @sWebDev
API captureOwnerStack
В React появился экспериментальный API
captureOwnerStack, который помогает разрабатывать более удобные ошибки. Он позволяет получить стек владельцев (Owner Stack) — список компонентов, через которые передаётся проп. Это полезно, если нужно быстро понять, какой компонент несёт ответственность за данные в сложной структуре. Работает только в режиме разработки и может измениться в будущих версиях. Если ваш код ломается, а виновника не найти, этот API поможет разобраться.
👉 @sWebDevPortal to elriel
Интерактивная анимация с порталом на Three.js.
👉 @sWebDev
Window-Engine
Window-Engine — библиотека для создания перетаскиваемых окон без зависимостей. Позволяет реализовать многозадачный интерфейс в веб-приложениях, сохраняя взаимодействие адаптивным, включая поддержку сенсорных экранов.
👉 @sWebDev
Когда на собеседовании спрашивают, ты фронт или бек, а ты до сих пор гуглишь, как центрировать div.
👍 – Издержки универсальности!
❤️ – Я думал, это они мне скажут кто я.
👉 @sWebDev | #юмор
Управление асинхронным рендерингом
Метод
flushSync() позволяет немедленно обновить состояние и выполнить ререндер, обходя пакетную обработку обновлений. Это полезно, когда требуется мгновенно обновить интерфейс перед выполнением других операций, например, чтением размеров DOM.
Например, кнопка изменяет текст элемента, и нам нужно получить его новую ширину до следующего рендера:
import { useState } from "react";
import { flushSync } from "react-dom";
function Example() {
const [text, setText] = useState("Нажми меня");
const spanRef = useRef(null);
function handleClick() {
flushSync(() => {
setText("Текст изменился!");
});
console.log("Ширина:", spanRef.current.offsetWidth);
}
return (
<div>
<button onClick={handleClick}>Изменить</button>
<span ref={spanRef}>{text}</span>
</div>
);
}
flushSync() гарантирует, что offsetWidth обновится после изменения текста, а не после следующего рендера.
👉 @sWebDev