This media is not supported in your browser
VIEW IN TELEGRAM
Пихать use client в каждый файл React? Не надо.
✅ Вместо этого прокидывай Server Components как children.
Интерактивная кнопка не должна делать всю страницу клиентской.
@WebDev_Plus
Интерактивная кнопка не должна делать всю страницу клиентской.
@WebDev_Plus
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Впечатляющие анимации, которые можно создать с помощью библиотеки GSAP всего за несколько строк кода:
@WebDev_Plus
@WebDev_Plus
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Представили Auto Layout в Anime.js v4.3
* Анимация display: flex / grid / none и т.д.
* Enter / Leave анимации
* Анимация изменения позиции DOM-элементов
* Прерываемые (interruptible) анимации
* Stagger-анимации для дочерних элементов
* Поддержка любых easing-функций
* Максимально простой API
Документация: https://animejs.com/documentation/layout
Примечания к выпуску: https://github.com/juliangarnier/anime/releases/tag/v4.3.0
CodePen Примеры: https://codepen.io/collection/yykPaw
@WebDev_Plus
* Анимация display: flex / grid / none и т.д.
* Enter / Leave анимации
* Анимация изменения позиции DOM-элементов
* Прерываемые (interruptible) анимации
* Stagger-анимации для дочерних элементов
* Поддержка любых easing-функций
* Максимально простой API
Документация: https://animejs.com/documentation/layout
Примечания к выпуску: https://github.com/juliangarnier/anime/releases/tag/v4.3.0
CodePen Примеры: https://codepen.io/collection/yykPaw
@WebDev_Plus
❤2
Преобразования строк на уровне типов
@WebDev_Plus
type Feature = "user" | "payment" | "order";
type SuccessEvent<T extends string> = `${Uppercase<T>}_SUCCESS`;
type events = SuccessEvent<Feature>;
// "USER_SUCCESS" | "PAYMENT_SUCCESS" | "ORDER_SUCCESS"
type EventHandler<T extends string> = `on${Capitalize<T>}Success`;
type event_handler = EventHandler<Feature>;
// "onUserSuccess" | "onPaymentSuccess" | "onOrderSuccess"
@WebDev_Plus
🔥1
Совет React: как избежать водопадов извлечения данных в серверных компонентах ↓
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Принёс находку: sshx. Всего одна команда, и у вас в браузере открывается реплика локального терминала: можно звать коллег по ссылке, видеть курсоры друг друга и даже чатиться
Идеально для дебага, обучения или просто совместной работы. Cайт здесь, GitHub тут
@WebDev_Plus
Идеально для дебага, обучения или просто совместной работы. Cайт здесь, GitHub тут
@WebDev_Plus
❌ Не используй barrel imports в React
✅ Импортируй компоненты напрямую
Barrel imports (реэкспорт через index.js) тянут весь модуль, даже если тебе нужен один компонент.
В итоге в бандл попадает лишний, неиспользуемый код ↓
✅ Импортируй компоненты напрямую
Barrel imports (реэкспорт через index.js) тянут весь модуль, даже если тебе нужен один компонент.
В итоге в бандл попадает лишний, неиспользуемый код ↓
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Интерактивная библиотека визуализации данных — ECharts
Позволяет добавлять интуитивно понятные, интерактивные и настраиваемые диаграммы в проект.
- Предоставляет более 20 типов диаграмм
- Переключение между рендерингом Canvas и SVG
- Автоматически генерируемые описания диаграмм
- Написана на чистом JavaScript
Забираем тут
@WebDev_Plus
Позволяет добавлять интуитивно понятные, интерактивные и настраиваемые диаграммы в проект.
- Предоставляет более 20 типов диаграмм
- Переключение между рендерингом Canvas и SVG
- Автоматически генерируемые описания диаграмм
- Написана на чистом JavaScript
Забираем тут
@WebDev_Plus
Сохраняй отзывчивость UI во время тяжелых рендеров с useTransition():
React ставит пользовательский ввод выше переходов (transitions) ↓
React ставит пользовательский ввод выше переходов (transitions) ↓
This media is not supported in your browser
VIEW IN TELEGRAM
Каждый раз, когда видишь setState внутри useEffect, иди постой в углу 5 минут и подумай о том, что ты натворил.
А потом удали этот useEffect
@WebDev_Plus
А потом удали этот useEffect
@WebDev_Plus
❤8
This media is not supported in your browser
VIEW IN TELEGRAM
Чувак сделал плагин анимаций для Tailwind
✓ 70+ готовых переходов из коробки
✓ Настраивай анимации через классы
✓ Анимируй элементы по скроллу
✓ Чистый CSS, топ по производительности
@WebDev_Plus
✓ 70+ готовых переходов из коробки
✓ Настраивай анимации через классы
✓ Анимируй элементы по скроллу
✓ Чистый CSS, топ по производительности
npm install tailwind-animations
@WebDev_Plus
❤14
Цена мемоизации в React часто выше, чем просто пересчитать заново ↓
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Всем вайб-кодерам: какой тут использован JS-концепт?
Только не юзайте для этого ИИ.
Это же совсем базовая штука😅
@WebDev_Plus
Только не юзайте для этого ИИ.
Это же совсем базовая штука
@WebDev_Plus
Please open Telegram to view this post
VIEW IN TELEGRAM
Собирать клон реального приложения полезно: сразу понимаешь, как на практике решаются типовые dev-проблемы.
В этом курсе проведут тебя через сборку full-stack клона Instagram на Laravel и MongoDB.
Настроите, чтобы весь стек нормально дружил между собой, поднимете аутентификацию и профили, научитесь работать с изображениями и сделаете еще много всего.
Смотрим бесплатно
@WebDev_Plus
В этом курсе проведут тебя через сборку full-stack клона Instagram на Laravel и MongoDB.
Настроите, чтобы весь стек нормально дружил между собой, поднимете аутентификацию и профили, научитесь работать с изображениями и сделаете еще много всего.
Смотрим бесплатно
@WebDev_Plus
❤1
React Compiler v1.0 уже здесь.
Он анализирует ваш код во время сборки и добавляет мемоизацию там, где это необходимо.↓
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Await — это стена. Ничто не выполняется после нее, пока обещание не будет выполнено.
Поместите эту стену после ранних возвратов, а не перед ними.
@WebDev_Plus
Поместите эту стену после ранних возвратов, а не перед ними.
@WebDev_Plus
❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Если вдруг пропустили: в Chrome DevTools появилась точечная эмуляция медленного интернета
Теперь DevTools позволяет эмулировать медленное сетевое соединение не для всей страницы целиком, а только для конкретных запросов
Это помогает тестировать, как веб-приложение работает и обрабатывает проблемы, когда отдельные ресурсы (например, изображения, скрипты или API-запросы) загружаются медленно
@WebDev_Plus
Теперь DevTools позволяет эмулировать медленное сетевое соединение не для всей страницы целиком, а только для конкретных запросов
Это помогает тестировать, как веб-приложение работает и обрабатывает проблемы, когда отдельные ресурсы (например, изображения, скрипты или API-запросы) загружаются медленно
@WebDev_Plus
This media is not supported in your browser
VIEW IN TELEGRAM
Новое CSS-свойство corner-shape открывает кучу интересных новых UI-паттернов.
@WebDev_Plus
corner-shape: bevel round;
border-radius: 1em 0 / 3em 0;
@WebDev_Plus
❤8
This media is not supported in your browser
VIEW IN TELEGRAM
Впечатляющая коллекция анимированных компонентов.
+100 доступных. Открытый исходный код и бесплатно:
→ http://github.com/kokonut-labs/kokonutui
@WebDev_Plus
+100 доступных. Открытый исходный код и бесплатно:
→ http://github.com/kokonut-labs/kokonutui
@WebDev_Plus
👨💻3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3