Проверяет понимание разделения React-компонентов на презентационные и контейнерные, что важно для архитектуры приложений и переиспользования кода.
В React принято разделять компоненты по их ответственности: одни отвечают за логику и данные, другие — за отображение. Умные компоненты (container components) знают о состоянии, работают с API, Redux, контекстом и передают данные вниз. Глупые компоненты (presentational components) получают всё через props и просто рендерят UI, не зная, откуда пришли данные.
Умный компонент загружает список пользователей и передаёт его в глупый компонент, который только отображает данные.
// Умный компонент
function UserListContainer() {
const [users, setUsers] = React.useState([]);
React.useEffect(() => {
fetch('/api/users')
.then(res => res.json())
.then(setUsers);
}, []);
return <UserList users={users} />;
}
// Глупый компонент
function UserList({ users }) {
return (
<ul>
{users.map(u => <li key={u.id}>{u.name}</li>)}
</ul>
);
}
Стоит применять такое разделение в средних и крупных приложениях, где важны переиспользуемость и тестируемость. В маленьких проектах иногда проще держать логику и разметку в одном компоненте.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию