Вопрос проверяет понимание принципов декомпозиции и переиспользования кода в React.
Вынесение кода в отдельные компоненты — это ключевая практика в React, основанная на принципе единственной ответственности. Компонент должен делать одну вещь и делать её хорошо. Если вы замечаете, что часть JSX или логики повторяется, усложняет чтение родительского компонента или может быть переиспользована в другом месте, пришло время для рефакторинга.
Допустим, у вас есть список пользователей, где каждый элемент отображает аватар, имя и email. Вместо того чтобы писать всю разметку внутри родительского компонента, выносим элемент в отдельный компонент UserCard.
// UserCard.jsx
function UserCard({ user }) {
return (
<div className="user-card">
<img src={user.avatar} alt={user.name} />
<h3>{user.name}</h3>
<p>{user.email}</p>
</div>
);
}
// UserList.jsx
function UserList({ users }) {
return (
<div>
{users.map(user => (
<UserCard key={user.id} user={user} />
))}
</div>
);
}Теперь UserCard можно переиспользовать в любом месте, где нужно отобразить пользователя. Родительский компонент стал чище и отвечает только за рендеринг списка.
Выносите код в отдельные компоненты, когда это повышает читаемость, переиспользование или упрощает тестирование. Не делайте это преждевременно — начинайте с простой структуры и рефакторите по мере роста приложения.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию