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

JavaScript: Почему я обеду ненавижу и люблю жирные функции стрелки

Когда функции стрелки жира были впервые добавлены в JavaScript, я радовался. На язык, где вы часто … Теги с JavaScript.

Когда функции стрелки жира были впервые добавлены в JavaScript, я радовался.

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

Отличный пример будет следующим


против

Так что на некоторое время все было хорошо со стрелами.

Затем пришли правила льмина.

Затем нашли все, что думали, что все функции должны быть функциями со стрелками.

Тогда … тогда пришла моя ненависть.

Сначала есть правило Lint для разрешения функций стрелки. Мы больше не можем использовать объявления функций. Хотя я бы предпочел выбрать свой собственный стиль определения функции на основе того, что я думаю, подходит в данной ситуации, я могу жить с этим.

Далее приходит плавание льминания, которое функционирует стрелку, где тело – это просто оператор возврата, должен пропустить функциональную тело все время.

Звучит невинно. Звучит разумно. Я не согласен. Я думаю, что это приводит к худшему коду. Это особенно верно при использовании этого с помощью объектов реагирования. Вы в конечном итоге с такими вещами:

const MyComponent = ({
  prop1,
  prop2,
  prop3,
  prop4,
  prop5,
}) => (
    

{prop1}

{prop2}

{prop5}

);

Это на самом деле довольно приятный пример. Я видел React Components, которые являются многосотными однократными одноразовыми выражениями. Им действительно трудно читать, и поэтому поддерживать. В дополнение к этому, если вы хотите сделать любую отладку, вы должны изменить функцию, чтобы добавить тело, чтобы вы могли использовать Console.log или отладчик на первой строке. Не огромное количество работы, но все же боль в заднице.

Так почему я обвиняю такие вещи, как это на функциях со стрелкой, что кажется тапы несправедливым, нет?

Я обвиняю их, потому что последовательность, которая приводит к тому, что это так, как правило, идет:

  1. Отвлечение только с использованием функций стрелки
  2. Компонент запускается маленький, только с оператором возврата и небольшому количеству JSX
  3. Силовые силы, которые функция стрелки пропускает тело
  4. Компонент растет
  5. Существует логика, которая должна быть выведена вне возвращения, как сложные выражения для расчета реквизитов. Вместо этого он сделан на месте, поэтому разработчик не должен менять функцию, чтобы добавить тело.
  6. Возвращение выражения растет и становится трудно поддерживать.

Общие функции стрелки представляют что-то, что я видел из JavaScript Dev гораздо больше, чем разработчики других языков: краткий код в течение простых для чтения кода. Что-то, что я говорю, что много раз, когда код прочитан еще много раз, чем написано, поэтому DEV должен оптимизировать для читаемости по поводу писания.

Таким образом, я не против функций стрелки за говорю, скорее их принудительное чрезмерное использование. Хотите простое обработчик щелчка на месте или функцию, в основном просто небольшое выражение аргументов? Конечно, стрелка функция прочь. Хотите большую функцию? Почему бы просто не использовать, вы знаете … функция?

Понравилось это? Тогда вы будете любить мой список рассылки. У меня есть обычная рассылка на JavaScript, Tech and Careers. Присоединяйтесь к 5000 человек, которые любят читать это. Подпишитесь в мой список здесь Отказ

Оригинал: “https://dev.to/wellpaidgeek/javascript-why-i-both-hate-and-love-fat-arrow-functions-471e”