Огляд React Signals. Можна забути про useState назавжди?

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

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

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

    Корисна інформація, дякую😊 Коротко і головне, без води. Цікаво дивитись, особливо з лайвкодінгом.

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

    Як завжди корисне та цікаве відео. Дякую.

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

      Дуже приємно.

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

    Крутий контент. Цей канал, якщо продовжуватиме такими темпами вийде на флагманський рівень за декілька років. Ніша не освоєна, а ті що стартують у ній не розвиваються так як цей. Хочеться побажати успіху автору. А також попрацювати з картинкою (хотілось би бачити щось в стилі colorcode, або подібне) і з діалектизмами. Успіхів! Щиро.

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

      Дякую. Приємно чути. З приводу темпів то тут можу посперечатися. Уже понад 3 роки веду канал і з такими темпами до флагманських рівнів рости до пенсії)) Дякую за поради з приводу картинки, буду працювати. Завжди радий коли хтось може щось підказати, щоб покращити якість.

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

      @@MaksymRudnyi Це важка праця вести такі канали на декількох платформах одночасно і робити це якісно, тримаючи планку високо. Дуже просто тримаючи ритм залишатись якісно і технічно ( в подачі матеріалу) на рівні "вічного аматора-початківця". Красива картинка, зрежисована подача, певний "флоу" відео і все що з цим пов'язане це важливо не тільки для власної справи, але також це орієнтир і критерій для інших у цій ніші. Творіть свій контент творячи загальний стандарт, щоб квітнув український ютуб ! Бажаю Вам в цьому всіляких успіхів, везіння і витримки! Кажу це знаючи як це важко, але ми у Вас віримо.

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

    Дякую за відео, цікава бібліотека

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

      Будь ласка.

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

    Для організації простого і максимально зрозумілого стейту менеджера підійде zustand

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

      Чув про нього, але ні разу не використовував. Може назва відштовхує. Хто так називає бібліотеки?)

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

      @@MaksymRudnyi це німецьке слово Цуштанд, означає State :)

  • @Кіріл-ы9р
    @Кіріл-ы9р 8 หลายเดือนก่อน +3

    Дякую за відео, бачив раніше також згадки за цю бібліотеку, якщо ви можливо нею трохи покиристувались, можете сказати про недоліки її використання ?

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

      Ще нормально не користувався, лише ознайомлююсь. З недоліків, що перше спадає на думку, проблему підтримки даного стейту, його структури. Уявімо що у вас є складних обєкт з багатьма полями. В Redux, наприклад, щоб змінити поле потрібно викликати action, він запустить редюсер який має доступ до стейту і змінить лише одне визначене поле. Ви не переживаєте що структура стейту зміниться. Тут же ваш обєкт може миттєво перетворитись в рядок або число. Способів запобігти цьому нема. Але якщо використовувати як заміну useState, то вроді виглядає цікаво.

    • @Кіріл-ы9р
      @Кіріл-ы9р 8 หลายเดือนก่อน

      @@MaksymRudnyi Дякую !

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

      @@MaksymRudnyi Хотів зробити проєкт з цією бібліотекою, але ці сигнали не працювали в мене з асинхронними функціями.
      Довго мучився, але не зміг знайти рішення, дуже мало про неї інформації. Був би дуже вдячний за приклад коректної роботи з асинхронною функцією чи API, аби зрозуміти чи це якась моя помилка, чи бібліотека кривенька.

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

    Було б цікаво дізнатись поглиблено про reconciliation алгоритм. Тобто як відбувається порівняння станів virtual dom, рендер безпосередньо в DOM і так далі, дякую!

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

      Додам в список наступних відео.

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

      Цікаво, як рендер безпосередньо в DOM може бути вигідним. Це ж далеко не дешева операція. Чи багато ререндерів виходить іще дорожче?

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

      @@liubovgolovach9148 в цьому й перевага react. Завдяки virtual dom і reconciliation, при зміні стейту відбувається порівняння старого virtual dom і нового virtual dom. В результаті в реальний DOM вносяться лише відмінності, тобто оновлюються/видаляються/додаються лише потрібні ноди (елементи dom). У випадку, наприклад, з нативним js, відбувався б повний ререндер всього DOM дерева, що вже є відносно важкою операцію в порівнянні зі створенням virtual dom
      Загалом в Інтернеті досить багато інформації саме про reconciliation і вцілому про переваги virtual dom. Але хотілось би подивитись розбір даної теми від автора відео)

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

    Цікаве відео про React Signals. Дякую.

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

      Приємно чути.

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

    Як ви боритесь з тим, що коли використовуюєш будь-який стейт менеджер, і всі дані в дочірних компонентах витягаєш з сховища, то треба у всіх цих компонентах перевіряти дані на пустоту (оскільки дані могли ще не з'явитися там), але перевага що не треба прокидати пропси. А коли прокидаєш пропси, то в батьківському компоненті, поки йде завантаження даних, можна становити лоадер, і рендерити дочірні компоненти вже з готовими даними (без перевірки на пустоту). Зрозуміло що йде річ про малу кількість даних (об'єкт чи масив), але все ж таки, постійно задумуюсь, що в конкретному випадку використовувати.
    Думаю коректно описав питання, якщо не зрозуміло - дайте знати. Завчасно дякую

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

      Optional chaining

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

      Використовую Optional chaining. Наприклад, data?.user?.username

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

      Optional chaining то зрозуміло, щоб замість помилки повернути undefined, але від перевірки на undefined не відійти

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

      Ну звісно, а як тут інакше? Треба завжди перевіряти на falsy значення перед виведенням на екран.

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

    Усе круто, але рендерінг реального ДОМ на декілька порядків повільніший...
    Поклади 10 лейбів з однаковим Сігналом - строкою яка зміньє розмір, та подивись перформанс :)

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

    вірно я розумію що ці стейти які були показані у відео це сінглтони? А як робити на реальному проєкт, щоб це не був сінглтон не при виконанні js не алокейтилась памʼять під сигнал, а виділялась памʼять при рендері компонента

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

      Можна спробувати створювати сигнали через useSignal хук. Тоді він буде в компоненті створений. Можна мабуть і напряму в компоненті створити сигнал, теж має працювати.

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

      @@MaksymRudnyiякщо хуки є то це те що потрібно, бо глобальний стейт не завжди потрібен

  • @dmytro-skh
    @dmytro-skh 8 หลายเดือนก่อน

    забути в доці написати про необхіднсть імпорту це топ)))

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

      Ну там дока для PReact, це все таки інша бібліотека. А в React працювало з старішою версією. В усіх відео можна побачити що все працює з коробки. Мене дуже дратувало коли я поставив сигнали а воно не працює. Перерив пів інета щоб знайти потрібні зміни для нової версії.

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

    Цікаво було б почути про P React

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

      Зробимо.

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

    Зрозумів чому Реакт одразу таке не зробив. Тому що signals поза межами компонента, а це небезпечно. Якщо хочеш, щоб signal був в компоненті, прийдеться обгортати його в старий добрий хук (що занадто). Для безпеки краще вже store юзати, він принаймні один, а цих сигналів можна цілий рій накидати.

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

    Чому ефект спрацював 4 рази?

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

      Цікаве питання. Теж бачив що часто викликається. Треба уважніше розібратися, можливо десь неправильного його використав, але наврядчи. Там дуже просте використання.

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

    2:00 Спам)

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

      Вона то так, але патерн програмування назвати спамом нікому не прийшло в голову, тому використовують різні PubSub або Sibscribers.

  • @Seacrest.
    @Seacrest. 8 หลายเดือนก่อน +2

    проєкт а не проект. Ніхто не каже субект, обект, інект...

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

    Можливо хтось може порекомендувати український ютюб канал про java?

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

      Можна глянути на мініфесті, там є список усіх каналів про ІТ українською - manifest.in.ua/rt/it/ Може щось є.

    • @Кіріл-ы9р
      @Кіріл-ы9р 8 หลายเดือนก่อน

      www.youtube.com/@FoxOwlet-IT

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

      Тут ще писали такий комєнт, але через наявність великої кількості посилань, TH-cam його видалив. Продублюю: * Юрій Ткач www.youtube.com/@java-tkach * Головач - Досить старий канал про джава - www.youtube.com/@KharkovITCourses - не оновлюється з 2014-2016 але у автора фундаментальний підхід - і викладені java основи на пристойному рівні