Стабильные и нестабильные значения в React

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ก.ย. 2024

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

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

    Полезно, спасибо!

  • @ТимофейЯременко-н4ж
    @ТимофейЯременко-н4ж 9 หลายเดือนก่อน +1

    Изначально посыл неверный: в зависимости useEffect не нужно добавлять все, что используется в колбеке (т.к. useEffect не мемоизирует колбек в отличие от useMemo или useCallback)
    Так что надо было в самом начале видео оставить пустой массив зависимостей - и все.

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

      react.dev/reference/react/useEffect#specifying-reactive-dependencies

    • @ТимофейЯременко-н4ж
      @ТимофейЯременко-н4ж 9 หลายเดือนก่อน

      ​​@@easydev1205, а статье рассказывается о том как бороться с линтером - и самый простой способ это заткнуть его добавив все зависимости.
      Но ничего не сказано почему надо добавлять в зависимости еффекта то, от чего я не хочу зависеть (кроме обтекаемой фразы "это опасно")

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

      Это опасно потому что стейт должен быть синхронизирован. Иначе могут вылезти трудноуловимые баги. Что и логично, учитывая для чего вообще нужен useEffect и как он работает.
      В некоторых случаях можно подавить предупреждение линтера и всё будет работать корректно. Общее же правило для этой ситуации ясно описано в документации. Следовать ему или нет решать вам

    • @ТимофейЯременко-н4ж
      @ТимофейЯременко-н4ж 9 หลายเดือนก่อน

      ​@@easydev1205, useEffect нужен для реагирования на определенные изменения. Если мне не нужно реагировать на изменение функции fetch (как в вашем примере) а просто надо ее вызвать один раз при маунте компоненты (пустой массив зависимостей) или перевызвать ее при изменении каких-то аргументов (тогда эти аргументы следует поместить в зависимости но никак не саму функцию!)
      У вас очень неудачный пример в видео.

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

      useEffect нужен не для реагирования на определенные изменения, а для вызова side effect, о чём и говорит его название. А в зависимости вы помещаете стейт который нужно синхронизировать. У вас просто неверное понимание что такое useEffect, поэтому и вопросы такие возникают. Может сделаю отдельное видео об этом

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

    Понравился один урок подписался на этот канал, после этого отписался ❤

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

      Зря отписываетесь. Может ещё что-то полезное будет