Стратегия разбивки компонентов React

Мне нужно реализовать дерево компонентов на React.

И мне интересно, какой достаточно хороший образец, как все сломать в дереве но с учетом масштабирования (кода или команды).

Обычно я использую следующий способ:

function UserAvatar(props) {
  return <div><img src = "" alt = "" /></div>   
}

function UserEmail(props) {
  return <div>e-mail: [email protected]</div>   
}

function UserSection(props) {
  return (
    <div className = "container">
      <div className = "section">
        <UserAvatar />
      </div>
      <div className = "section">
        <UserEmail />
      </div>
    </div>
  );
}

Но следует ли мне избегать всех этих разделов макета и сделать макет чище?

Один очевидный вариант - перейти в отдельный компонент компоновки.

Спасибо

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
1 292
2

Ответы 2

Рекомендуется хранить каждый Component в своих файлах, а затем импортировать их туда, где на них нужно ссылаться.

Кроме того, в вашем примере, скорее всего, вам нужно будет установить URL-адрес аватара и адрес электронной почты в качестве реквизита. Затем заставьте UserAvatar и UserEmail отображать значения. Кроме того, рекомендуется настроить propTypes, чтобы другие разработчики (и вы сами) знали, какие пропсы передавать.

Один из критериев разбивки компонентов на подкомпоненты - это когда они имеют дело с разными проблемами или когда размер файла становится слишком большим. Другой критерий - когда вам нужно повторно использовать этот компонент в каком-то другом контексте.

Надеюсь это поможет.

Рекомендации по разборке компонентов:

  1. Когда ваш компонент делает слишком много. В идеале компоненты должны быть сосредоточены на выполнении одной (или нескольких, но не многих) задач. Самый очевидный признак - когда количество строк в коде становится слишком длинным. По приблизительным оценкам, комплектующих не должно быть больше 300 строк.

  2. Если вы хотите повторно использовать компоненты в нескольких родительских компонентах, вам придется их разбить.

  3. Если вы хотите оптимизировать render() определенных поддеревьев компонента с помощью shouldComponentUpdate(), то вы должны разбить их, поскольку вы можете реализовать shouldComponentUpdate() только на уровне компонентов.

  4. Отделение логики выборки данных от логики рендеринга и обработки взаимодействия с пользователем. Вместо того, чтобы заставлять один компонент выполнять и выборку данных, и (рендеринг и обработку взаимодействий с пользователем), разбейте их на более мелкие компоненты, чтобы вы могли тестировать компоненты по отдельности:

    • Убедитесь, что первый компонент получает данные.
    • Убедитесь, что второй компонент правильно отображает данные и может реагировать на действия пользователя.
    • Подробнее об этом здесь

Еще много хороших ответов Кента С. Доддса здесь.

Другие вопросы по теме