useSyncExternalStore и примеры практического использования

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

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

  • @mr.zxzxzxz3816
    @mr.zxzxzxz3816 2 หลายเดือนก่อน +1

    спасибо Михаил. Ваши курсы для меня были очень полезны и как начинающему было понятно.

  • @роматарасов-о8л
    @роматарасов-о8л 2 หลายเดือนก่อน

    спасибо за такой инсайт
    не ожидал что он окажется реально полезным
    в работе часто задумывался как бы сразу получать "реактивное" значение в компоненте
    не используя useEffect + useState

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

    Круто! Спасибо!

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

    отличное применение) спасибо) было интересно узнать)

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

    Миша - бриллиант 💎
    Спасибо тебе ❤

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

    Годный контент. Лайк

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

    Один момент во всех примерах: ф-ию subscribe необходимо запоминать, т.е. закинуть в useCallback, иначе подписка/отписка будут происходить при каждом обновлении компонента, что может неплохо так бить по производительности

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

    Классно, особенно понравился пример с синхронизацией вкладок

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

    На мой взгляд оптимизация useResizeObserver ну так скажем, на каждый ресайз setSize.
    Я сделал так:
    type Bounds = { left: number; top: number; width: number; height: number }
    const useResizeObserver = (
    callback: (bounds: Bounds) => void,
    throttleDelay = 0
    ) => {
    const elemRef = useRef(null)
    // ...
    Юзер уже решит колбеком записывать стейт или нет. Без useSyncExternalStore. Может юзеру не нужен каджый пиксель, а булеан, например, width < 800. Может он захочет записать прямо в Zustand дав понять всему дереву компонентов про layout.

  • @Плывущийкреке
    @Плывущийкреке 2 หลายเดือนก่อน

    шикос

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

    Хук просто шикарный. Есть useSyncExternalStoreWithSelector из коробки

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

      и че

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

      @@romandeveloper7720 контекст вашего комментарий слишком глупый что бы на него отвечать

  • @Мороз-г3й
    @Мороз-г3й 2 หลายเดือนก่อน

    Нормас)

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

    Появилось мысль сделать на основе вашего хука матчмедии свой, в который будет прокидываться енум с разрешениями, по типу мобайл, таблет и тп, а значения будут экспортироваться из scss переменных, чтобы меняя в одном месте подстраивались и стили и разметка

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

    И в последнем примере если из localStorage возвращается объект, то в примере из видео всё поломается, т.к. каждый раз снапшот будет другой и реакт войдёт в бесконечный цикл

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

    Спасибо, интересно. А есть этот код на гите? Или где-то ещё?

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

      Могу выложить. Это сырые наброски.

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

      @@mishanep , для понимания хватит и этого.

  • @mister.kosmos
    @mister.kosmos 2 หลายเดือนก่อน

    хотелось бы какой то наглядный пример в чем эго преимущество перед useEffect. показались довольно схожи по видео

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

      UseEffect несколько о другом. Да, там можно делать подписки на API, но сам хук ничего не возвращает. Значит придется плюс к нему управлять состоянием, которое мы получили извне.

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

    Интересно, изменения оно триггерит когда ? Сразу или, до эффектов, после эффектов, во время эффектов и т д.

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

      в смысле когда? ты ведь подписываешься на события. когда событие срабатывает, тогда и триггерт.

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

    и снова грасиас

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

      Де нада

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

    Мне кажется эта работа вас убивает. Поберегите здоровье, возьмите отпуск. Спасибо за ваши видео!

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

    Михаил, как с вами связаться напрямую? По вопросу менторства. Пробовал писать на почту, но не уверен, что читаете...

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

      Почту читаю. pcgramota@gmail.com

  • @serge-KSV
    @serge-KSV 2 หลายเดือนก่อน

    Круто! Спасибо! 🔥👍🔥👍🔥

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

    И в последнем примере если из localStorage возвращается объект, то в примере из видео всё поломается, т.к. каждый раз снапшот будет другой и реакт войдёт в бесконечный цикл