Русский
Открыть в Telegram

Пост Рефакторинг запутанного компонента

9 августа 2024
З
Заметки про React
Ссылка
нажмите — покажем
Рефакторинг запутанного компонента В своем блоге Алекс Кондов рассказал, как бы он проводил рефакторинг запутанного компонента формы. Кратко, о чем он пишет: - Написать тесты. Если еще тестов нет, то перед рефакторингом надо написать тесты для компонента. В тестах должна проверяться бизнес логика. Делается это для того, чтобы знать, что в процессе рефакторинга ничего не сломается. - Использовать линтер. Нужно добавить автоматические проверки, которые подсветят проблемный код. Например, неиспользуемые импорты, значения стейта и т.д. - Удалить «мертвый» код. Нужно удалить лишние комментарии, неиспользуемые переменные. В этом как раз поможет линтер. - Сократить количество стейтов. Если в компоненте много useState, то скорее всего он делает слишком много разных вещей. В этом случае его можно разделить на подкомпоненты и связать через пропсы. - Убрать большие условные рендеры. Если блоки похожи, то их можно объединить в один компонент. Если блоки различны, то лучше разделить их на два компонента и разделить логику между ними. return !numberIncorrect ? ( // A lot of JSX... ) : ( // Even more JSX... ) - Следить за ответственностью компонента, чтобы внутри него было как можно меньше действий. В дальнейшем это упростит понимание кода. - Вынести утилитарные функции за пределы компонент. Функция может находиться в теле компонента, только если ей требуется доступ к стейту или другому значению внутри компонента. - Используйте для валидации форм декларативные схемы, например Zod, Yup. - Не используйте inline стили. https://alexkondov.com/refactoring-a-messy-react-component/
52 · 3.4K ·

Рядом в ленте

ЗЗаметки про ReactФича флаги в Next.js Для Next.js появилась библиотека @vercel/flags/next для работы с фича-флагами в коде. Пример объявления: import { unstable_flag as flag } fЗЗаметки про ReactГибкая предварительная загрузка данных в SPA При создании большого SPA одним из важных пунктов оптимизации становится предварительная загрузка данных. Например,
это сообщение
ЗЗаметки про ReactЧеклист безопасности React приложения Обзор популярных уязвимостей фронтенд приложений в контексте React: 🔴Cross-Site Scripting (XSS). Атака заключающаяся в внеЗЗаметки про ReactГлубокое погружение в формы в современном React В своем блоге Кент С. Доддс рассказал, как использовать новые хуки useFormStatus, useActionState и useOptimistic
ЗЗаметки про ReactЗаметки про React@ru_react_notes · канал · Технологии
3 412подписчиков491постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем