Топ 5 ОШИБОК Новичков в REACT

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ม.ค. 2025

ความคิดเห็น • 40

  • @gorbatkoff_dev
    @gorbatkoff_dev  หลายเดือนก่อน

    Репозиторий с кодом: github.com/gorbatkoff/react_mistakes

  • @fastlife-uckygood9127
    @fastlife-uckygood9127 8 วันที่ผ่านมา

    Для новичков ролик реально годный

  • @TheStonedFox
    @TheStonedFox หลายเดือนก่อน +4

    от только вчера практиковался в реакт и не понимал почему по два массива мне прилетает вместо одного. спасибо за контент.

  • @vvks9901
    @vvks9901 10 วันที่ผ่านมา

    Это было круто!!! Спасибо!

  • @StefanRoth-q8f
    @StefanRoth-q8f หลายเดือนก่อน +3

    Ты молодец!Очень приятно разговариваешь и хорошо обьясняешь!Продолжай в том же духе

    • @gorbatkoff_dev
      @gorbatkoff_dev  หลายเดือนก่อน

      Привет!
      Спасибо большое! Приятно слышать)

  • @pika4u380
    @pika4u380 หลายเดือนก่อน +8

    Про множество стейтов, мол нужно делать универсальный - это справедливо только для неуправляемых компонентов т.к, в противном случае, на любое изменение в любом из полей будут ререндериться все поля, которые управляются этим стейтом. Это очень важное уточнение

    • @artmich8132
      @artmich8132 21 วันที่ผ่านมา

      А какая разница, если стейт родительский, следовательно ререндирится родитель и все его дети (поля). Если не берем в расчет мемоизацию инпутов и оборачивание обработчика в usecallback

    • @pika4u380
      @pika4u380 18 วันที่ผ่านมา

      @artmich8132 Мы не можем не брать в расчет мемоизацию если хотим получить нормальный перформанс формы

  • @ВладимирВолощик-ю3ы
    @ВладимирВолощик-ю3ы หลายเดือนก่อน

    "Удачи! Только не сдавайся. Хорошо получается."

  • @dasha_owl
    @dasha_owl หลายเดือนก่อน

    Классный ролик, спасибо за полезную информацию! 😊

  • @lehagrand2018
    @lehagrand2018 หลายเดือนก่อน

    Хорошее изложение материала, продолжай в том же духе!

  • @TechsturDev
    @TechsturDev หลายเดือนก่อน +13

    Юзайте typescript и не будет таких ошибок с формой

    • @тимур_атмосферный
      @тимур_атмосферный หลายเดือนก่อน +2

      @Сергей-у3к8й чувак, ты явно не в себе. если ты пытаешься привести статистику NPM как аргумент, то у TypeScript рост ещё сильнее, к твоему сведению

    • @тимур_атмосферный
      @тимур_атмосферный หลายเดือนก่อน

      @Сергей-у3к8й Инженерные задачи, которые решает TypeScript:
      1. Снижение количества ошибок на этапе разработки благодаря статической типизации
      2. Улучшение читаемости и сопровождения кода благодаря самодокоментирующим типам
      3. Более легкая в реализации модульная архитектура благодаря наличию явных интерфейсов
      4. Улучшение автодополнения, рефакторинга и других аспектов разработки благодаря LSP интеграции
      5. Явный контроль за изменениями в коде благодаря явному указанию типов
      6. Способствование написанию мономорфного кода благодаря строгому соблюдению типов
      Очевидно многие из перечисленных плюсов могут быть перекрыты отрицательным IQ разработчика, но при правильном использовании - писать код намного приятнее и удобнее, особенно в команде.
      Довод в сторону валидаторов вообще не понятен. Валидаторы стали популярны как раз во время TypeScript, т.к. помогают в случаях, где JavaScript по своей сути не может вычислить тип данных (ответ с API или ввод пользователя как самый распространенный пример).

    • @тимур_атмосферный
      @тимур_атмосферный หลายเดือนก่อน

      @Сергей-у3к8й Инженерные задачи, которые решает TypeScript:
      1. Снижение количества ошибок на этапе разработки благодаря статической типизации
      2. Улучшение читаемости и сопровождения кода благодаря самодокоментирующим типам
      3. Более легкая в реализации модульная архитектура благодаря наличию явных интерфейсов
      4. Улучшение автодополнения, рефакторинга и других аспектов разработки благодаря LSP интеграции
      5. Явный контроль за изменениями в коде благодаря явному указанию типов
      6. Способствование написанию мономорфного кода благодаря строгому соблюдению типов
      Очевидно многие из перечисленных плюсов могут быть перекрыты отрицательным IQ разработчика, но при правильном использовании - писать код намного приятнее и удобнее.
      Довод в сторону валидаторов вообще мне не понятен. Валидаторы стали популярны как раз во время TypeScript, т.к. помогают в случаях, где JavaScript по своей сути не может вычислить тип данных (ответ с API или ввод пользователя как самый распространенный пример).

    • @BOCbMOU
      @BOCbMOU หลายเดือนก่อน +1

      ​@Сергей-у3к8й после таких слов валидаторы для строгих языков программирования сделали долгую затяжку. Задача валидаторов, внезапно, валидировать, а тса - типизировать. Каким образом ты в типах укажешь, что значение должно быть в ренже от 0 до 100, к примеру? Что строка с эмайлом должна быть валидной? И т.д.
      > какие инженерные задачи решает ts?
      Упрощает поддержку приложения. Указывает на ряд ошибок ещё на этапе написания кода, а не в рантайме. Ускоряет внедрение новых разработчиков в проект (особенно джунов/мидлов). Добавляет новые фичи до того, как они появляются в ванильном жс.

    • @BOCbMOU
      @BOCbMOU หลายเดือนก่อน

      @Сергей-у3к8й так ютуб постоянно рандомно комменты удаляет. :/
      1. Абсолютно верный тезис, который никак не противоречит моим словам.)
      2. Всё так, только отлов будет именно в рантайме и только когда приложение дойдёт до этой части кода.
      3. И это, опять же, не противоречит моим словам.)
      4. В своё время опшинал чейнинг и декораторы, к примеру, в тс появились задолго до самого жса. Какими полифилами это можно решить?
      В целом, ты всё верно пишешь, но ты почему-то считаешь, что упрощение той же поддержки выбирается по принципу Math.max, а не через сложение пользы от подходов/инструментов, улучшающих поддерживаемость. В таком случае и юнит тесты ненужны, они ведь тоже помогают поддерживать приложение. Собственно, типизация и есть своего рода юнит тестирование.

  • @fe1ai_0
    @fe1ai_0 หลายเดือนก่อน

    блин, приятель, расскажи про Backend на JS. Будет неплохо просто увидеть то, как это делают другие. Я сейчас учу именно backend (понадобилось для проекта небольшого), поэтому был бы рад увидеть что-то такое

  • @romandeveloper7720
    @romandeveloper7720 หลายเดือนก่อน +2

    кейс на обложке интереснее всех изложенных)

    • @ne4to777
      @ne4to777 15 วันที่ผ่านมา

      Видимо, просто спер у другого блогера

  • @nerts4720
    @nerts4720 หลายเดือนก่อน

    Спасибо большое!

  • @cr0ak-cr0ak
    @cr0ak-cr0ak 8 วันที่ผ่านมา

    прием-прием, автор живой? когда некст видео?

  • @enb6869
    @enb6869 23 วันที่ผ่านมา

    А в реакте что-ли нет форм по типу ангуляровских?

  • @ProJavaScript
    @ProJavaScript หลายเดือนก่อน +2

    1:00 Не вводите людей в заблуждение, никакого отношения к React и "асинхронному" setState это поведение не имеет.
    Так работает JavaScript и все другие ЯП с не-ссылочным типом переменных.

    • @gorbatkoff_dev
      @gorbatkoff_dev  หลายเดือนก่อน

      Перед тем как сказать это в видео, я специально загуглил, является ли правдой то, что я скажу.
      Как оказалось -- да.
      stackoverflow.com/questions/36085726/why-is-setstate-in-reactjs-async-instead-of-sync
      Вот подтверждение моих слов.

    • @Furamy
      @Furamy หลายเดือนก่อน

      ​@@gorbatkoff_dev когда функция вызывается у нее в замыкании перменная counter с одним значением, поэтому при вызове setState 3 раза подряд, в переменной counter будет одно и то же значение, которое поменяется только при перерендере компонента, когда функция useState будет вызвана снова и проиниализирует переменную counter с новым значением
      поэтому и правда, никакого отношения к асинхронности это не имеет, просто внутри этой функции в переменной counter есть значение и мы напрямую его никак не меняем

    • @ProJavaScript
      @ProJavaScript หลายเดือนก่อน +4

      @gorbatkoff_dev setState безусловно асинхронных (по технологии батчинга). Только какое это имеет отношение к захваченному в замыкании значению не-ссылочной переменной?
      Точно также это будет работать и с синхронным кодом, и вне React: значение переменной никак не обновиться, без явного присваивания, а в данном случае и присваивание невозможно, потому что переменная объявлена через const.

    • @gorbatkoff_dev
      @gorbatkoff_dev  หลายเดือนก่อน +1

      @@ProJavaScript Вы правы, что асинхронность setState сама по себе не влияет на поведение замыкания и значение переменной, захваченной в нём.
      Однако я упомянул об асинхронности setState в контексте, чтобы подчеркнуть потенциальные ошибки, которые могут возникнуть, когда программист рассчитывает на немедленное обновление состояния. 👌

  • @ЕгорЛазука-й1э
    @ЕгорЛазука-й1э 12 วันที่ผ่านมา

    А где пример из превью видео?

    • @gorbatkoff_dev
      @gorbatkoff_dev  12 วันที่ผ่านมา

      Привет!)
      Превью сделано для привлечения внимания к теме, а в видео я объясняю похожие случаи и ошибки. Надеюсь, содержание было полезным)

  • @outcast-cr5yy
    @outcast-cr5yy หลายเดือนก่อน

    Крутой ролик

  • @bleugame
    @bleugame หลายเดือนก่อน

    крутое видео! Вижу, что ты тоже реактер. Может вместе будем сайт писать? мне просто помощник нужен, а то я не очень опытный, да и времени нет

  • @egorkermin4178
    @egorkermin4178 หลายเดือนก่อน

    Не понял, а какой видос нужно посмотреть, чтобы понять почему там логи 2 раза вызываются ?)

    • @gorbatkoff_dev
      @gorbatkoff_dev  หลายเดือนก่อน

      Привет!
      Держи ссылку на видос) 🙏
      th-cam.com/video/BI5ovonBHJ0/w-d-xo.html

  • @motolife4900
    @motolife4900 หลายเดือนก่อน +1

    Какого хрена на обложке ты пишешь не делай так? Делал и буду делать