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

#reactjs #javascript #typescript
00:00 Минусы нестабильных значений в зависимостях
02:50 Решение проблемы нестабильных значений в зависимостях
05:18 Что такое стабильные и нестабильные значения
06:21 Какие значения являются нестабильными
09:29 Стабильны ли значения возвращаемые useState?
11:03 Нестабильные значения и пропсы

Пікірлер: 10

  • @kreet4855
    @kreet48557 ай бұрын

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

  • @user-ok4uq8rp5m
    @user-ok4uq8rp5m7 ай бұрын

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

  • @easydev1205

    @easydev1205

    7 ай бұрын

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

  • @user-ok4uq8rp5m

    @user-ok4uq8rp5m

    7 ай бұрын

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

  • @easydev1205

    @easydev1205

    7 ай бұрын

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

  • @user-ok4uq8rp5m

    @user-ok4uq8rp5m

    7 ай бұрын

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

  • @easydev1205

    @easydev1205

    7 ай бұрын

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

  • @NikolayKasparov
    @NikolayKasparov7 ай бұрын

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

  • @easydev1205

    @easydev1205

    7 ай бұрын

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

Келесі