Вопрос проверяет понимание принципа подстановки Лисков и умение применить его в контексте фронтенд-разработки на React.
Принцип подстановки Лисков гласит, что любой дочерний класс должен корректно заменять родительский, не нарушая работу программы. В React это означает, что компонент, расширяющий или заменяющий другой, должен полностью сохранять его контракт (пропсы, поведение), чтобы не ломать логику приложения.
Принцип подстановки Лисков (Liskov Substitution Principle, LSP) — одна из частей SOLID, формулируется так:
Объекты дочерних классов должны быть взаимозаменяемы с объектами базового класса без нарушения корректности программы.
Контракт пропсов
Новый компонент, заменяющий старый, должен принимать те же обязательные пропсы и интерпретировать их одинаково.
Поведение
Замена не должна менять ожидаемое поведение для остальной системы.
Пример
function Button({ onClick, label }) {
return <button onClick={onClick}>{label}</button>;
}
function IconButton(props) {
return <Button {...props} />;
}
// IconButton можно подставить вместо Button — контракт соблюденНовый компонент требует дополнительные обязательные пропсы, которые родитель не требовал.
Новый компонент меняет смысл уже существующих пропсов.
Вывод:
Во фронтенде LSP помогает проектировать переиспользуемые и заменяемые компоненты, что особенно важно для больших проектов с длительной поддержкой.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию