Стандартизировать свое развитие реагирования с этими ключевыми решениями
Реагирование было открытым в 2013 году. С тех пор это развивалось. Когда вы ищете в Интернете, вы будете наткнуться через старые сообщения с датированными подходами. Итак, вот восемь ключевых решений, которые ваша команда должна сделать при написании компонентов реагирования сегодня.
Решение 1: Окружающая среда
Прежде чем писать свой первый компонент, ваша команда должна договориться о среде Dev. Много вариантов …
?Poll: What boilerplate do you typically use for React development today? #react #reactjs Опрос: какая котельная вы обычно используете для развития реагирования сегодня? ?Poll: What boilerplate do you typically use for React development today?
Конечно, вы можете Создайте среду DEV JS с нуля Отказ 25% DEV RACE DEV делают только что. Моя нынешняя команда использует вилку создания-реактивного приложения с дополнительными функциями, такими как Реалистичные Mock API, который поддерживает Crud , а Библиотека многоразового компонента и усовершенствование льминания (мы слишком называем наши тестовые файлы, которые игнорируют app create-raction). Мне нравится Create-React-App, но Этот инструмент поможет вам сравнить множество убедительных альтернатив Sure, you can build a JS dev environment from scratch . 25% of React devs do just that. My current team uses a fork of create-react-app with additional features such as a realistic mock API that supports CRUD , a reusable component library , and linting enhancements (we lint our test files too, which create-react-app ignores). I enjoy create-react-app, but this tool will help you compare many compelling alternatives
Решение 2: Типы
Вы можете игнорировать типы, использовать Типы опоры , используйте Поток или использовать Машинопись You can ignore types, use prop-types , use Flow
Сообщество остается разделенным на эту тему:
? For enforcing types in React, I typically use… #react RT’s appreciated Для применения применения в реакции я обычно использую …
Я предпочитаю типы опоры, потому что я обнаружил, что он обеспечивает безопасность достаточного типа в компонентах реагирования с небольшим трением. Используя комбинацию Вавила, Отрегрышные тесты , Eslint и типы опоры, я редко вижу проблемы типа выполнения.
Решение 3: Createclass VS ES Class
RECT.CREATECLASS был оригинальным API, но в 15.5 он был устарел. Некоторые чувствуют Мы прыгнули на пистолет, переходя на классы ES Отказ Независимо от того, стиль Createclass был извлечен из ядра Reaction и Относится на одну страницу под названием «Реагирование без ES6» в реагированных документах React.createClass was the original API, but in 15.5, it was deprecated. Some feel we jumped the gun moving to ES classes . Regardless, the createClass style has been moved out of React core and relegated to a single page called “React without ES6” in the React docs
Решение 4: Класс против функционала
Вы можете объявить объекты реагирования через класс или функцию. Классы полезны, когда вам нужны проблемы, и методы жизненного цикла. Вот …| 9 причин рассмотреть возможность использования функций, когда это возможно Отказ Но стоит отметить, что Есть некоторые недостатки для функциональных компонентов Отказ
Решение 5: государство
Вы можете использовать простое состояние реагирования. Это достаточно. You can use plain React component state. It’s sufficient. Lifting state scales nicely. Or, you may enjoy Redux or MobX: Подъемное состояние
Никаких пламенных войн, пожалуйста – честно любопытно, где в эти дни сообщество React. Для новых проектов PR/RECTAGE я использую ___ для управления государством.
Я поклонник redux , но я часто использую простые реагирование, так как это проще. В моей нынешней роли мы отправили около дюжины реагированных приложений, и решил Redux стоил его для двух. Я предпочитаю доставку многих, маленьких, автономных приложений через одно большое приложение.
В соответствующем примечании, если вы заинтересованы в неизменном состоянии, есть как минимум 4 способа сохранить свой штат Immutable Отказ
Решение 6: Связывание
Есть как минимум Полдюжина способов справиться с переплетом в реактивных компонентах. В реактивной защите, это в основном потому, что современные JS предлагает множество способов обработки обязательств. Вы можете связать в конструкторе, связываться в рендере, используйте функцию стрелки в рендере, используйте свойство класса или использовать декораторы. There are at least half a dozen ways you can handle binding in React components. In React’s defense, this is mostly because modern JS offers many ways to handle binding. You can bind in the constructor, bind in render, use an arrow function in render, use a class property, or use decorators. See the comments on this post for even more options! Each approach has its merits, but assuming you’re comfortable with experimental features,
Этот опрос с августа 2016 года. С тех пор появляется свойства классов, выросли по популярности, а Createclass сократился в популярности.
Как вы справляетесь с привязкой в #reaCtjs сегодня? How do you handle binding in #reactjs today?
Примечание Side note : Many are confused about why arrow functions and bind in render are potentially problematic. The real reason? It makes shouldComponentUpdate and PureComponent cranky . Многие путают о том, почему функции стрелки и привязки в рендере потенциально проблематичны. Настоящая причина? Side note
Решение 7: стиль
Вот где варианты серьезно напряжены. Существует 50+ способов стиля ваших компонентов, включая встроенные стили React, традиционные CSS, SASS/менее, CSS модули и 56 Опции CSS-In-JS Отказ Без шуток. Я изучаю подходы к стилю реагирования в деталях в стиле модуля этого курса , но вот резюме:
Посмотрите, почему существует так много фрагментаций в реактивных вариантах стилей? Там нет четкого победителя.
Моя нынешняя команда использует Sass с BEM и достаточно счастливы, но я также наслаждаюсь Стильные компоненты Отказ
Решение 8: многоразовая логика
Реагировать изначально обняться Мистины в качестве механизма совместного использования кода между компонентами. Но смешины вызвали проблемы и являются Теперь считается вредным Отказ Вы не можете использовать смесины с компонентами класса ES, так что теперь люди Используйте компоненты более высокого порядка React initially embraced mixins as a mechanism for sharing code between components. But mixins caused issues and are now considered harmful
[Опрос для пишенения Devs #ReaCtjs ]: Какой ты предпочитаешь? HOC: https://t.co/aczxcpud8j Рендер реквизиты: https://t.co/2haYUuGK7z
Компоненты более высокого порядка в настоящее время более популярны, но я предпочитаю рендеринг реквизитов, поскольку они часто легче читать и создавать. Higher-order components are currently more popular, but I prefer render props since they’re often easier to read and create. Michael Jackson recently sold me with this : Майкл Джексон недавно продал меня этим
И это не все …
Есть больше решений:
- Будете ли вы использовать .js или .jsx. Расширение ?
- Будете ли вы размещать каждый компонент в собственной папке ?
- Будете ли вы применять один компонент на файл? Будет ли ты привод людей орехи, ловив файл index.js в каждом каталоге ?
- Если вы используете пропирты, вы будете объявлять их внизу или в самом классе, используя Статические свойства ? Будет ли ты объявить пропиты как можно более глубоко ?
- Вы будете традиционно инициализировать государство в конструкторе или использовать Инициализатор свойств синтаксис ?
А поскольку React в основном просто JavaScript, у вас есть обычный длинный список решений в разработке JS, такие как запястья , Трейлинг запятые , Форматирование и Обработчик событий Намного рассмотреть тоже.
Выберите стандарт, затем автоматизировать исполнение
И все это встало, и есть десятки комбинаций, которые вы можете увидеть в дикой природе сегодня.
Итак, эти следующие шаги являются ключом:
Другие ключевые решения, которые я пропустил? Перезвонить через комментарии.
Ищете больше на реагировании? ⚛️.
Я был авторизован несколько курсов React и JavaScript На плютаре ( бесплатная пробная версия ).
Дом Кори автор Несколько курсов по JavaScript, React, Clear Code, .NET и многое другое на Pluralsight Отказ Он главный консультант по адресу Reactjsconsulting.com , архитектор программного обеспечения в Vinsolutions, Microsoft MVP и поезда разработчиков программного обеспечения на международном уровне по методике программного обеспечения, такими как интерфейс разработки и чистого кодирования. Твиты CORY о JavaScript и Front-End Development в Twitter, как @houseCor Отказ