В качестве примера возьмем форму «Свяжитесь с нами». Я мог бы просто построить всю вещь в одном компоненте, или это может быть действительно разложено: каждое текстовое поле является компонентом, кнопкой отправки и т. Д. Как узнать, какая форма должна быть деконструирована и перестроена как Компоненты?Сколько компонентов слишком много в ReactJS?
ответ
Мое правило заключается в компонент-Изе вещи, которые могут и будут повторно использовать в вашем приложении, либо эстетически или функционально. Если это единственная форма, которая вам нужна, вероятно, не стоит накладных расходов на преобразование каждого элемента в компонент. Но если у вас будет много форм, подумайте о создании компонентов.
Пример причины для компонент-Изи своих элементов формы:
- функциональности особого вида поля (
InputEmail
: делают передний план проверку для входов электронной почты) - Styling (
SubmitButton
: всегда красная, полная ширину, и т.д. .)
В больших проектах, над которыми я работал, это хорошо сработало. У меня есть набор настраиваемых компонентов формы, поэтому я могу создать стилизованную форму со сложной функциональностью. Обычно это будет выглядеть примерно так:
<Form onSubmit={this.handleSubmit}>
<Input default label="Email Address" type="email" validate={validateEmail} />
<Input default label="Password" type="password" />
<Button primary type="submit" />
</Form>
Form
выполняет общую логику проверкиInput
запускаетvalidateEmail
пропеллер и делает ярлык- Вы получаете идею ...
Это, в конечном счете, зависит от личных предпочтений и сложности вашего приложения, однако статья "Thinking in React" в документации ссылается на single responsibility principle как хороший способ разбить ваш интерфейс на компоненты.
Также обратите внимание: одна из основных причин, по которой вы будете строить, используя реакцию, заключается в том, что она сильно поддерживает модульные компоненты, которые могут быть повторно использованы. Большие, более сложные компоненты, как правило, сложнее повторного использования. Вы можете создать целую форму контакта в одном компоненте, но если вы хотите повторно использовать средство проверки ввода электронной почты в другом месте, вы можете подумать о создании другого компонента.
Я бы сказал, что на практике мои реактивные компоненты находятся где-то между 50-300 линиями, причем компоненты верхнего уровня являются самыми большими и сложными.
- 1. Сколько абстракции слишком много?
- 2. Сколько NSTimers слишком много?
- 3. Сколько EJB слишком много?
- 4. Сколько задач слишком много?
- 5. Сколько слоев слишком много?
- 6. Сколько задач слишком много
- 7. Сколько конструкторов слишком много?
- 8. Сколько данных сеанса слишком много?
- 9. Сколько потоковой безопасности слишком много?
- 10. Сколько перенаправления NGinx слишком много?
- 11. Сколько из STL слишком много?
- 12. mysql - сколько столбцов слишком много?
- 13. Сколько PHP-запросов слишком много?
- 14. Сколько буферов nginx слишком много?
- 15. Сколько тегов div слишком много?
- 16. Сколько столбцов слишком много столбцов?
- 17. iPhone: Сколько памяти слишком много?
- 18. Сколько параметров функции слишком много?
- 19. Сколько накладных расходов слишком много?
- 20. Импорт модулей - сколько слишком много?
- 21. Сколько рубиновых потоков слишком много?
- 22. Сколько общих настроек слишком много?
- 23. Cyclomatic сложность, сколько слишком много?
- 24. Сколько setIntervals слишком много в хорошей практике?
- 25. Сколько параметров слишком много в JavaScript?
- 26. Сколько стоит слишком много Kafka в секунду
- 27. Сколько полей «слишком много» в таблице?
- 28. Сколько проектов в решении слишком много?
- 29. Сколько ключей слишком много в memcached?
- 30. Массив компонентов в ReactJS
Trial и ошибка. Обычно я начинаю писать нормально, и как только я вижу что-то, что может быть его собственным компонентом, я положил его туда. – azium
Также имейте в виду, что у вас часто есть возможность вводить названную абстракцию в метод «render» просто путем прорастания функции, а не всего нового компонента. –