Ответ
Wrapper компонент — это компонент, который оборачивает другой компонент, добавляя или изменяя его функциональность без изменения его исходного кода. Это полезно для:
- Добавления стилей или классов
- Обработки событий
- Контроля пропсов или состояния
- Интеграции с контекстом или сторонними библиотеками
Пример:
const ButtonWrapper = ({ children, onClick }) => {
return (
<button
onClick={() => {
console.log('Button clicked!');
onClick?.();
}}
style={{ padding: '10px 20px', background: 'blue' }}
>
{children}
</button>
);
};
// Использование:
<ButtonWrapper onClick={() => alert('Clicked')}>
Click me
</ButtonWrapper>
Паттерн помогает сохранять компоненты чистыми и переиспользуемыми.
Ответ 18+ 🔞
Да ты посмотри, что эти фронтендеры выдумали, блядь! Wrapper компонент, ёпта! Это ж как взять обычную хуйню и завернуть её в подарочную бумагу, чтобы она заиграла по-новому, но внутри-то всё та же самая хуйня!
Ну, типа, есть у тебя кнопка. Простая, честная кнопка, button. А тебе надо, чтобы она ещё и в консоль писала, когда по ней кликают, и чтобы цветом синим была, блядь. Так ты её не переписываешь, охуевший что ли? Ты делаешь ей обёртку!
Вот смотри, как это выглядит, сука:
const ButtonWrapper = ({ children, onClick }) => {
return (
<button
onClick={() => {
console.log('Button clicked!'); // Сюда свой костыль впилил, блядь
onClick?.(); // А оригинальный клик тоже вызовется, если был
}}
style={{ padding: '10px 20px', background: 'blue' }} // И стилями обосрал на свой вкус
>
{children} // А вот внутри — оригинальный контент, живой!
</button>
);
};
И пользуешься потом, как ни в чём не бывало:
<ButtonWrapper onClick={() => alert('Clicked')}>
Click me, сука!
</ButtonWrapper>
Красота, блядь! Сама кнопка осталась чистой, как слеза младенца, а функционал навесил, как ёлочные игрушки. Это ж и есть переиспользуемость, ёпта! Не надо каждый раз одно и то же писать, можно обернуть и поехали.
Используют эту хуйню для всего: стили налепить, события перехватить, пропсы подменить или с каким-нибудь контекстом подружить. Главное — не трогать то, что внутри, а то получится не обёртка, а говно в проруби, понимаешь?