Как я ускоряю разработку с помощью React DevTools
Сегодня хочу поделиться инструментом, без которого я уже не представляю работу — React DevTools.
Многие его ставят "для галочки", но реально используют только для просмотра компонентов. А ведь он может сильно ускорить разработку, если выжать из него максимум.
Вот что реально помогает:
1. Профайлер — если у вас страница перерисовывается дольше, чем хотелось бы, откройте вкладку Profiler. Там видно, какие компоненты рендерятся лишний раз и сколько это занимает времени.
2. Поиск по дереву компонентов — если проект большой, можно быстро найти нужный компонент прямо в DevTools (Cmd/Ctrl + F).
3. Редактирование пропсов на лету — в режиме разработчика можно менять пропсы и сразу видеть результат без пересборки проекта.
4. Highlight updates — включает подсветку обновляемых компонентов. Очень удобно, чтобы найти “лишние” рендеры.
Если вы еще не используете хотя бы профайлер и подсветку рендеров — попробуйте. Уже через пару дней вы начнете понимать, где проект "проседает" и что можно оптимизировать.
А вы часто заглядываете в Profiler или больше по старинке —
✍️ @React_lib
Сегодня хочу поделиться инструментом, без которого я уже не представляю работу — React DevTools.
Многие его ставят "для галочки", но реально используют только для просмотра компонентов. А ведь он может сильно ускорить разработку, если выжать из него максимум.
Вот что реально помогает:
1. Профайлер — если у вас страница перерисовывается дольше, чем хотелось бы, откройте вкладку Profiler. Там видно, какие компоненты рендерятся лишний раз и сколько это занимает времени.
2. Поиск по дереву компонентов — если проект большой, можно быстро найти нужный компонент прямо в DevTools (Cmd/Ctrl + F).
3. Редактирование пропсов на лету — в режиме разработчика можно менять пропсы и сразу видеть результат без пересборки проекта.
4. Highlight updates — включает подсветку обновляемых компонентов. Очень удобно, чтобы найти “лишние” рендеры.
Если вы еще не используете хотя бы профайлер и подсветку рендеров — попробуйте. Уже через пару дней вы начнете понимать, где проект "проседает" и что можно оптимизировать.
А вы часто заглядываете в Profiler или больше по старинке —
console.log
и догадки? 😄✍️ @React_lib
👍8
🤩Хотите, чтобы ваши React-приложения не просто работали, а вызывали вау-эффект?
Присоединяйтесь к открытому уроку «Анимируем React: от нуля до вау-эффекта» 12 августа в 20:00 МСК. Мы покажем, как создать живые, отзывчивые интерфейсы с помощью библиотеки анимаций Framer Motion и API Intersection Observer. Разберём, как добавить современный UX без перегрузки сторонними библиотеками, чтобы каждый элемент интерфейса был динамичным и запоминающимся.
Освойте практические подходы и техники, которые используют профессионалы для создания визуально выразительных интерфейсов. Получите знания, которые значительно улучшат ваш опыт в React.
⚡️Присоединяйтесь к открытому вебинару и получите скидку на курс «React.js Developer»: https://vk.cc/cOkYCL
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Присоединяйтесь к открытому уроку «Анимируем React: от нуля до вау-эффекта» 12 августа в 20:00 МСК. Мы покажем, как создать живые, отзывчивые интерфейсы с помощью библиотеки анимаций Framer Motion и API Intersection Observer. Разберём, как добавить современный UX без перегрузки сторонними библиотеками, чтобы каждый элемент интерфейса был динамичным и запоминающимся.
Освойте практические подходы и техники, которые используют профессионалы для создания визуально выразительных интерфейсов. Получите знания, которые значительно улучшат ваш опыт в React.
⚡️Присоединяйтесь к открытому вебинару и получите скидку на курс «React.js Developer»: https://vk.cc/cOkYCL
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Всем доброго вечера! Сегодня я хочу рассказать вам о проблеме, которая встречается почти у каждого React-разработчика - "эффект дрожания" интерфейса при условном рендеринге.
Допустим, у вас есть компонент, который отображает список данных после загрузки. Пока данные подгружаются, вы показываете спиннер, а потом - сам список. Всё вроде нормально… но при переключении состояния верстка “прыгает”, элементы смещаются, и пользователь видит неприятный скачок.
💡 Как решить?
Главная идея — зарезервировать место под контент заранее. Даже если мы показываем скелетон или спиннер, блок должен иметь такую же высоту, как и итоговый контент.
Например:
А ещё лучше — использовать скелетон-загрузчик (skeleton loader). Он повторяет форму будущего контента, и благодаря этому переключение происходит плавно и без сдвигов.
📌 Совет: в UI-библиотеках вроде Material UI или Ant Design уже есть готовые скелетоны - просто используйте их вместо "чистого" спиннера. Пользователь не заметит перехода, и приложение будет казаться быстрее.
А у вас бывает, что верстка дергается при смене состояния? Как вы это решаете?
✍️ @React_lib
Допустим, у вас есть компонент, который отображает список данных после загрузки. Пока данные подгружаются, вы показываете спиннер, а потом - сам список. Всё вроде нормально… но при переключении состояния верстка “прыгает”, элементы смещаются, и пользователь видит неприятный скачок.
💡 Как решить?
Главная идея — зарезервировать место под контент заранее. Даже если мы показываем скелетон или спиннер, блок должен иметь такую же высоту, как и итоговый контент.
Например:
{isLoading ? (
<div style={{ height: 300 }}>
<Spinner />
</div>
) : (
<List items={data} />
)}
А ещё лучше — использовать скелетон-загрузчик (skeleton loader). Он повторяет форму будущего контента, и благодаря этому переключение происходит плавно и без сдвигов.
📌 Совет: в UI-библиотеках вроде Material UI или Ant Design уже есть готовые скелетоны - просто используйте их вместо "чистого" спиннера. Пользователь не заметит перехода, и приложение будет казаться быстрее.
А у вас бывает, что верстка дергается при смене состояния? Как вы это решаете?
✍️ @React_lib
👍4❤1👎1
Сегодня хочу показать вам один из практичных паттернов в React - Container & Presentational Components.
Очень часто мы мешаем бизнес-логику и UI в одном компоненте. Это делает код тяжелым для поддержки, особенно в больших проектах.
⚡️ Подход простой:
- Container-компоненты отвечают за работу с данными: запросы к API, обработку состояния, вызовы хендлеров.
- Presentational-компоненты - только за отображение. Они получают данные и колбэки через
Пример 👇
👉 Такой подход облегчает тестирование, переиспользование компонентов и уменьшает связность.
А как вы пишете? Делите логику и UI или чаще держите все в одном компоненте?
✍️ @React_lib
Очень часто мы мешаем бизнес-логику и UI в одном компоненте. Это делает код тяжелым для поддержки, особенно в больших проектах.
⚡️ Подход простой:
- Container-компоненты отвечают за работу с данными: запросы к API, обработку состояния, вызовы хендлеров.
- Presentational-компоненты - только за отображение. Они получают данные и колбэки через
props
и не думают о том, откуда эти данные пришли.Пример 👇
// Container
function UserContainer() {
const [user, setUser] = React.useState(null);
React.useEffect(() => {
fetch("/api/user")
.then(res => res.json())
.then(setUser);
}, []);
return <UserProfile user={user} />;
}
// Presentational
function UserProfile({ user }) {
if (!user) return <p>Загрузка...</p>;
return <h2>{user.name}</h2>;
}
👉 Такой подход облегчает тестирование, переиспользование компонентов и уменьшает связность.
А как вы пишете? Делите логику и UI или чаще держите все в одном компоненте?
✍️ @React_lib
👍1
🚀 С 25 по 30 августа пройдёт Podlodka React Crew #3 — сезон о паттернах и практиках фронтенда.
В программе:
💡 Паттерны и подводные камни View Transition API в React (Николай Шабалин, СберЗдоровье)
🧠 Глубокое погружение в архитектуру React Hooks (Максим Никитин, Rocket Science)
⚙️ Разбор FSD 2.1 на практике, без догм (Лев Челядинов, FSD Core team)
📚Подготовка к архитектурному интервью для фронтендеров (Игорь Антонов, Т-Банк)
📐Layout-паттерны за пределами Flexbox и CSS Grid (Саша Илатовский, Albato)
🎯 Все темы прикладные, с практикой и кейсами.
🔗 Подробности и билеты
P.S: Для подписчиков группы React скидка 500 р по промокодуreact_crew_3_Osn1zQ
В программе:
💡 Паттерны и подводные камни View Transition API в React (Николай Шабалин, СберЗдоровье)
🧠 Глубокое погружение в архитектуру React Hooks (Максим Никитин, Rocket Science)
⚙️ Разбор FSD 2.1 на практике, без догм (Лев Челядинов, FSD Core team)
📚Подготовка к архитектурному интервью для фронтендеров (Игорь Антонов, Т-Банк)
📐Layout-паттерны за пределами Flexbox и CSS Grid (Саша Илатовский, Albato)
🎯 Все темы прикладные, с практикой и кейсами.
🔗 Подробности и билеты
P.S: Для подписчиков группы React скидка 500 р по промокоду
❤1👍1