Что такое паттерн Wrapper компонента

Ответ

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>

Красота, блядь! Сама кнопка осталась чистой, как слеза младенца, а функционал навесил, как ёлочные игрушки. Это ж и есть переиспользуемость, ёпта! Не надо каждый раз одно и то же писать, можно обернуть и поехали.

Используют эту хуйню для всего: стили налепить, события перехватить, пропсы подменить или с каким-нибудь контекстом подружить. Главное — не трогать то, что внутри, а то получится не обёртка, а говно в проруби, понимаешь?