Реагировать — переусердствовать с «маленькими компонентами»

#reactjs

#reactjs

Вопрос:

Итак, я работаю с React уже несколько лет, и в последнее время люди в моей команде начали делать подобные вещи:

 const InputContainer = (props) => {
    const className = props.className;
    return <div {...{ className }}>
        {props.children}
    </div>;
};
  

По сути, это просто написание div с class помощью a и рендеринг дочерних элементов.

Итак, теперь мой вопрос: в моей идее это просто излишество и бесполезно. Он создает компоненты только с единственной целью использования html-тегов. Что вы думаете?

Почему это было бы полезно, когда я могу просто сделать

 <div>
    <p> ....
</div>
  

в одном компоненте?

Я не против использования маленьких компонентов, но, на мой взгляд, это слишком много и раздувает все вместо простого использования html.

Комментарии:

1. Ответ на ваш вопрос заключается в возможности повторного использования. Если фрагмент кода, который создают ваши товарищи по команде, можно повторно использовать в нескольких местах, тогда стоит создать компонент else для одноразового использования, я не думаю, что создание компонента имеет смысл.

2. Приведенный выше пример, безусловно, выглядит раздутым. React — это просто декларативный способ написания сложных виджетов, реализация которых скрыта. Если это может быть достигнуто с помощью простого html (like above) , то это следует использовать.

3. Но если существует несколько вложенных разделов, каждый из которых имеет свои собственные стили и события, такие как Card , то это должно быть преобразовано в компонент. Так что то же самое можно использовать повторно, не переписывая раздувание повсюду.

4. единственная причина, по которой это использовалось, заключалась в том, что «defaultProps» определял один класс css. так component.defaultProps = { classToSet: "classToSet" } . Ничего больше…

Ответ №1:

Я думаю, что это перебор. Вы уверены, что это не шутка? 😉
Я, конечно, шучу. Серьезно, мне кажется, что это делает код менее читаемым и более сложным в обслуживании.

Комментарии:

1. Смотрите мой последний комментарий вверху.