Рубрики
Без рубрики

7 Причин к функциональным компонентам Outlaw React

Стоит ли функциональные компоненты Rection? Обновление 5/31/19: Rect 16.8 Добавленные крючки, которые означают, что вы можете использовать функциональные компоненты для почти всего! ? Функциональные компоненты – это будущее реагирования. Таким образом, нижняя линия, используйте функциональные компоненты для будущего развития. Что сказал, компромиссы ниже подают заявку на более чем старше

Стоит ли функциональные компоненты Rection?

Обновление 5/31/19 : Rect 16.8 Добавлено Крючки Это означает, что вы можете использовать функциональные компоненты для почти всего! ? Функциональные компоненты – это будущее реагирования. Таким образом, нижняя линия, используйте функциональные компоненты для будущего развития. Это сказал, что компромиссы ниже подают заявку на более старые кодовые базы, где крюки не являются вариантом. Счастливое кодирование!

Я провожу недели, консультируя команду в Сиэтле, чтобы помочь ускорить их переход к реакции Отказ Сегодня мы обсуждали 8 Ключевые решения, чтобы сделать стандартизировать развитие реагирования Отказ

Я поделился 9 причин Я фанат функциональных компонентов Отказ Один ответ удивил меня:

WOAH, правда? Мы обсудили вопрос на расстоянии. Вот почему.

1. Преобразование хлопот

Функциональные компоненты не поддерживают состояние, ссылки или методы жизненного цикла. Они не могут распространять чистоту. Иногда вы создадите функциональный компонент только для понимания того, что вам нужен один из этих функций только класса позже. В этих ситуациях это хлопот, чтобы вручную преобразовать в функцию в класс.

Редактировать : Вместо того, чтобы преобразовать в класс, вы можете улучшить существующие функциональные функциональные методы жизненного цикла, штат и многое другое через пересчитать .

2. Грязные дифференцины

После того, как вы закончили конвертацию, различие шумно. Даже тривиальное однонаправленное изменение приводит к многострочному обзору кода.

Вот пример преобразования функционального компонента в класс, так что его можно объявить.

Если этот компонент был объявлен в качестве класса с самого начала, истинное намерение фиксации было бы четкостью – это потребует 4 символа изменения:

Конверсия скрывает историю компонента, создавая иллюзию, что компонент был в значительной степени переписан, когда на самом деле вы, возможно, сделали очень тривиальные изменения. Человек, который делает преобразование, будет «обвинить» для написания многих строк, которые они просто изменились на конверсионные причины.

3. Незначительный сигнал на шум

Сравните минимальный класс к функции, и различия незначительны. Помните, что конструкторы необязательны без состояния.

Коррекция : Упс! Я забыл, что функциональный стиль может быть одноклассником с простой функцией стрелки:

const Hello = ({greeting, firstName}) => 
{greeting} {firstName}

4. Несоответствие

Функция и классные компоненты выглядят разными. Это несоответствие может замедлить разработчиков вниз, когда они смещаются между двумя стилями.

  • В классах вы говорите Это .proops , в функциях, вы говорите реквизит .
  • В классах вы объявляете рендеринг функция. В функциях вы не делаете.
  • В классах вы разрушаете на вершине визуализации. В функциях вы разрушаете в списке аргументов функции.
  • В классах вы объявляете реквизиты по умолчанию ниже компонента (или через свойства класса, если вы готовы использовать функцию stage-3 ). В функциях вы объявляете реквизиты по умолчанию с помощью аргументов по умолчанию.

Эти тонкие различия добавляют трение для новых Devs, и переключение контекста приводит к ошибкам для ошибок для опытных Devs.

5. Классы знакомы разработчикам OO

Да, классы JavaScript, безусловно, отличаются от классов Java и C #. Но любой, кто работает в OO-земле на сервере, скорее всего, найдет это простое правило, легко понять:

«Актуальный компонент представляет собой класс, который простирается реагировать. Составная часть.”

Добавление нюансированного разговора о том, как и когда использовать простые функции, добавляет путаницу для oo devs, которые уже привыкли использовать для использования классов для всего. Сейчас я не говорю, что это мышление здорово – сообщество реагирования способствует больше функционального мышления. Но необходимо признать, что функциональные компоненты создают ментально-модельное трение для oo devs.

6. Нет преимуществ производительности, Пока что

В то время как команда RACT состоит в том, что функциональные компоненты будут быстрее или более эффективными в будущем, это еще не так. Таким образом, можно спорить функциональные компоненты в настоящее время преждевременной оптимизации.

И поскольку функциональные компоненты требуют преобразования в класс для реализации современных настроек производительности, таких как необходимо, на самом деле, они на самом деле больше хлопот для оптимизации для производительности сегодня.

Обновление : С реагированием 16,6+ , вы можете объявить «чистые» функциональные компоненты через Отреагировать. Мэмо Отказ

7. Пока что другое решение

Наконец, разработчики JavaScript уже есть нелепое количество решений, чтобы сделать Отказ Занятие функциональных компонентов устраняет решение: Всегда создавайте класс.

Я все еще поклонник функциональных компонентов Отказ Но теперь я узнаю, что они не обязательно хлопают задолженность для всех. Итак, как обычно, рассмотрите компромиссы. ?

Увидеть другие недостатки или преимущества? Перезвонить ниже.

Я был авторизован несколько курсов React и JavaScript на плютаре ( бесплатная пробная версия ).

Дом Кори автор Несколько курсов по JavaScript, React, Clear Code, .NET и многое другое на Pluralsight Отказ Он главный консультант в rectegssconsulting.com , программный архитектор в VINSolutions, Microsoft MVP и поезда разработчиков программного обеспечения на международном уровне по методике программного обеспечения, такими как интерфейс разработки и чистого кодирования. CORY Tweets о JavaScript и Front-End Development в Twitter, как @houseCor Отказ

Оригинал: “https://www.freecodecamp.org/news/7-reasons-to-outlaw-reacts-functional-components-ff5b5ae09b7c/”