[доклад] Подробно о React Reconciliation, или Как React добился 60 fps

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 147

  • @fl1pp1x
    @fl1pp1x 3 роки тому +56

    Круто чувак, не закидывай канал) уже очень крутая подача и анимация от синяка

    • @it-sin9k
      @it-sin9k  3 роки тому +8

      Спасибо!) лучшая поддержка, чтобы мы не бросили, это поделиться этим канал со своими коллегами)

    • @fl1pp1x
      @fl1pp1x 3 роки тому +3

      @@it-sin9k делюсь со всеми )

    • @Никита-ж2з7п
      @Никита-ж2з7п 2 роки тому +1

      @@it-sin9k даже бабушке скидываю, только не бросай !))

    • @it-sin9k
      @it-sin9k  2 роки тому +2

      @@Никита-ж2з7п ахахах) в таком случае точно нельзя бросать) завтра кстати новое видео выйдет)

    • @Никита-ж2з7п
      @Никита-ж2з7п 2 роки тому

      @@it-sin9k всё можно)) даже бросить что-то, главное чтоб кайф это приносило лично тебе и ты был счастлив) но, думаю ты и так знаешь,что счастье когда помогаешь кому-то, а твой труд однозначно помогает многим😉 главное не заставлять себя это делать,когда этого не хочется,ибо это тоже нормально)

  • @РоманТищук-е6в
    @РоманТищук-е6в 2 роки тому +2

    Крутооо. Хотелось бы такой же доклад о Concurrent Mode. Много информации об этом но ты всё по полочкам прям раскладываешь.

    • @it-sin9k
      @it-sin9k  2 роки тому

      Да, эту тему точно нельзя обходить стороной)

  • @pnx_gfy
    @pnx_gfy 2 роки тому +5

    Интересный доклад, а твоя подача информации отдельно радует). Далеко не каждый умеет объяснять понятно сложные темы. Огромное спасибо за твой труд!
    P.S.: Даже не смей бросать канал!))

    • @it-sin9k
      @it-sin9k  2 роки тому +3

      Спасибо!) Пока в планах бросать канал нет) только вперед))

  • @andr1127
    @andr1127 4 роки тому +4

    Спасбо за контент! Очень лаконично и приятно) Лайк, подписка

  • @PlayMrGolem
    @PlayMrGolem 2 роки тому

    Отличное объяснение. Все четко понял. Кроме requestAnimationFrame и requestIdleCallback. Придется их изучить

  • @serhiirumiantsev7736
    @serhiirumiantsev7736 4 роки тому +2

    Супер, посмотрел до середины. Круто, то что надо. Как раз сам готовлю доклад по оптимизации рендеринга в реакте и много чего прояснил. Спасибо. Обязательно досмотрю, обещаю :)

    • @it-sin9k
      @it-sin9k  4 роки тому

      Рад быть полезным) надеюсь и другие видео пригодятся)

  • @ИванИванов-у3ч4м
    @ИванИванов-у3ч4м 2 роки тому

    Отличное видео! Спасибо большое!

  • @vitaliiiashchuk1534
    @vitaliiiashchuk1534 4 роки тому +5

    Спасибо! Было бы интересно послушать и другие ваши доклады, я конечно, при помощи поиска нашел кое-что. Но возможно есть что-то еще =)

    • @it-sin9k
      @it-sin9k  4 роки тому +2

      Спасибо) но это первое, что то достойное от меня) я не сильно люблю формат доклада, но иногда практикую

  • @elcapitan8693
    @elcapitan8693 3 роки тому +8

    Очень крутой контент и подача!Но про 60 кадров - ошибка) даже между 60 и 120fps можно сразу заметить разницу, а воспринимать возможно и до 150fps вроде

    • @it-sin9k
      @it-sin9k  3 роки тому +1

      Видимо у вас глаз наметан хорошо и моник хороший) Я даже специально гуглил разные характеристики мониторов, оказалось что почти вся бюджетная линия мониторов не поддерживает свыше 60)

    • @fedyasick5177
      @fedyasick5177 3 роки тому

      @@it-sin9k Сейчас уже много мониторов до 200 баксов 75-144hz, и я как чел, который перешел с 144 на 240, могу сказать что разница в плавности существенная. Я не говорю уже о разнице между 60hz и 240)

    • @АртемТерещенко-ц4э
      @АртемТерещенко-ц4э 2 роки тому +1

      Согласен насчёт фпс но это присуще только людям связанным с игровой индустрией.

    • @tyt-no-udee-nick
      @tyt-no-udee-nick 2 роки тому +1

      У меня был довольно старый, но не уже не элт, монитор с поддержкой 75 кадров/с, на нем с 60 кадрами была весьма заметная разница. А уж 60-120 так совсем.
      А в бюджетном сегменте неудивительно, что все 60, там больше ненужно

  • @denskorpi
    @denskorpi 4 роки тому +4

    Спасибо огромное, доклад очень стоящий, скину в чат коллегам на работе) Ты просил(надеюсь не страшно,я то на ты;)) писать в комментах предложения по темам. Очень хочется послушать что то ещё про оптимизации в реакте. В духе как ты рассказал о том, как на практике можно воспользоваться знаниями о допущениях.

    • @it-sin9k
      @it-sin9k  4 роки тому +5

      Я очень рад, что тебе зашел доклад) и отдельное спасибо за распространение моих роликов!
      А по поводу пожеланий, в данный момент, я как раз создаю целый плейлист посвященный этой теме "React под капотом", где будет много полезных мелочей ускользавших от глаза
      Вот например сегодня вышло новое видео о useCallback - ua-cam.com/video/2Wp7QPTkpms/v-deo.html
      Оно бьет все рекорды на моем канале по просмотрам :)

  • @dmitriibo458
    @dmitriibo458 4 роки тому +1

    Вот это подробности, спасибо. Прошу, не останавливайтесь!

    • @it-sin9k
      @it-sin9k  4 роки тому

      Спасибо!) будем продолжать в том же духе)

  • @SiakisSayyam
    @SiakisSayyam 18 днів тому

    Твој глас је 💕, али да ли имаш програме учења за мене као да сам у Индонезији или на Маурицијусу?

  • @disposables72
    @disposables72 3 роки тому +1

    Действительно хорошая лекция. Многое прояснилось в голове. Спикеру респект!

  • @prog-hak
    @prog-hak 3 роки тому +1

    ВААААААУУУУ!!!! Четко, структурировано, красочно, шикарно подготовлено и чудесно изложено, информативно, супер полезно. Спасибо большое, посмотрел взахлеб)))) А самое главное поминимуму технического языка, спать не хотелось, а даже наоборот, просидел с застывшим лицом в позе "ВАУ". Круто, спасибо П.С Синяк - мой герой)))

    • @it-sin9k
      @it-sin9k  3 роки тому

      Спасибо за такой лестный комментарий!!!)
      нам очень это помогает двигаться дальше и развивать канал)
      еще очень поможет, если вы этим каналом поделитесь со своими коллегами)

  • @alexandrkositsky7698
    @alexandrkositsky7698 Рік тому

    Спасибо 🔥

  • @dmitrysvetlov6001
    @dmitrysvetlov6001 Рік тому

    Хотелось бы видео про react-query, с акцентом на то, как лучше организовывать ui state и про мутацию серверного состояния, складывать ли серверный стейт в локальный в хуках и мутировать, либо напрямую в кэше, или подключать отдельные пакеты - mobx, redux, или использовать контекст.

  • @lionstar3189
    @lionstar3189 Рік тому

    Кому еще интересно, процесс построения реакт ворк-ин-прогресс трее прерываемый, реакт может отменить его. А вот процесс замены, реакт каррент трее на ворк-ин-прогресс трее не прерываемый.

  • @АнатолийГорбов-о1ь

    Супер доклад! очень много полезной и интересной информации! Спасибо)

  • @andreydiakonov57
    @andreydiakonov57 2 роки тому

    Видео просто огонь, спасибо большое за подробные обьяснения! Не все понимал так в начале просмотра, хоть и прочитал документацию два раза

  • @PacoOfficial
    @PacoOfficial Рік тому +2

    6:20 такого я давно не слышал, раньше тоже самое говорили про 24 кадра 🤣

    • @abbze8272
      @abbze8272 Рік тому

      Скоро и до 300+ кадров дойдем. Эволюция 😂😂😂

  • @user-paint-alexandra
    @user-paint-alexandra 2 роки тому

    Спасибо, понятное и доступное объяснение такой сложной темы. Буду применять.

  • @uNkind33
    @uNkind33 3 роки тому +2

    доклад топ, спасибо!

  • @Alexander_1ov
    @Alexander_1ov Рік тому

    Это лучшее видео про устройство Реакта! Спасибо)

  • @ИванИванов-ц5ю6х
    @ИванИванов-ц5ю6х 3 роки тому +3

    React Reconciliation имеет две фазы, commit и render. Фаза commit это отправка изменений в render environment или commit реализация уже внутри render environment?

  • @illiazolotarov8766
    @illiazolotarov8766 3 роки тому

    Просто вау! Спасибо тебе. Есть мысли сделать ещё видео о приоритизации? Какие действия попадают под категории? Как он это понимает? Вот пользователь навел на ховер - ок немедленный приоритет. Но как он это понял? Если у нас есть готовый список данных на следующую секунду рендера, как он меняет список? Что вообще такое этот список? Как он выглядит?
    Ты стал моим кумиром )

    • @it-sin9k
      @it-sin9k  3 роки тому +1

      спасибо!)
      пока с темы React я переключился на другую. Но я думаю вернусь еще к этой теме)

  • @lionstar3189
    @lionstar3189 2 роки тому

    Я правильно понимаю, что виртуал дом для реакта нужен чисто для того, что бы браузер layout веб страницы отрисовывал по минимуму. К примеру если у какого то элемента поменять style, это вызывает отрисовку layout(а), поэтому рекомендуют не писать 100 раз style, а прописать чисто класс(это вызывает только 1 раз отрисовку layout(а)). Реакт стремиться свести к минимуму.

    • @it-sin9k
      @it-sin9k  2 роки тому

      Идея правильная, а пример не совсем правильный :)

  • @РоманНарожнов
    @РоманНарожнов Рік тому

    Пушка! Спасибо громадное!

  • @artemy5594
    @artemy5594 2 роки тому +3

    Я один вижу больше 60 кадров в секунду?)

    • @it-sin9k
      @it-sin9k  2 роки тому

      Ниже в комментариях чел вообще сказал что я бомжевидео запилил, ведь человек видит всего 24 кадра :)

    • @artemy5594
      @artemy5594 2 роки тому

      @@it-sin9k нет, материал хороший! Смотрю периодически твой канал. Синяку привет)

  • @БекназарКемелов
    @БекназарКемелов 2 роки тому +1

    Привет, спасибо за очень интересный и понятный доклад! у меня вопрос сколько Virtual DOM создает React?

  • @МихаилФокин-л4у
    @МихаилФокин-л4у 2 роки тому

    Спасибо за доклад. Очень круто!

  • @kolyabokov88
    @kolyabokov88 3 роки тому

    Очень крутая лекция! Обычно все по верхам. Автору лайк и подписка! Открытие прям!

    • @it-sin9k
      @it-sin9k  3 роки тому

      Добро пожаловать на канал!) надеюсь здесь найдете еще много интересного)

    • @kolyabokov88
      @kolyabokov88 3 роки тому

      @@it-sin9k уже нашёл! Видосы про Солид - просто огонь)
      Вынуждаете меня посмотреть все, что у вас есть по реату))

  • @NoName-zh7cc
    @NoName-zh7cc 3 роки тому

    Офигенно, просто топ контент. Пилишь себе проекты, кажется, что все знаешь, а оказывается нюансов вагон

    • @it-sin9k
      @it-sin9k  3 роки тому

      Хорошо сказано :)

  • @MrGreen-zs7on
    @MrGreen-zs7on 3 роки тому +1

    Доклад огонь 🚀

  • @spoonjeee4785
    @spoonjeee4785 4 роки тому +1

    приятно слушать, спасибо!

    • @it-sin9k
      @it-sin9k  4 роки тому +2

      решили экспериментально залить мой доклад, как думаете стоит ли заливать такого рода вещи на канал? возможно и других доклады на специфик темы могут быть интересны? или придерживаться старого формата видео?

    • @spoonjeee4785
      @spoonjeee4785 4 роки тому

      @@it-sin9k точно стоит, ваша подача в любом формате заходит и пополняет знания, а формат ваще не важен имхо

  • @barakex6766
    @barakex6766 2 роки тому

    Это один из лучших контентов, работаю в альфе, там тебя и посоветовали, Альфа с тобой брат)))

    • @it-sin9k
      @it-sin9k  2 роки тому +1

      Ого) это круто) я свое ИП тоже обслуживаю в Альфа банке, так что я тоже с Альфой))

  • @ArtemMindsurfer
    @ArtemMindsurfer Рік тому

    очень интересно рассказываешь!)

  • @kirillpodolinniy309
    @kirillpodolinniy309 Рік тому

    Александр, спасибо вам большое!

  • @MaximFilanovich
    @MaximFilanovich 2 роки тому +2

    Спасибо большое за доклад! Лучшее, что я нашел про React Reconciliation на русском языке!
    Также появился вопрос по поводу React Fiber. Fiber - это переделанная реализация алгоритма reconciliation. Получается до версии React 16.0.0 у нас были объекты Node с ключами $$typeof, type, props и др. С React Fiber объект Node был заменен на объект Fiber, в свойствах у которого хранятся type, key, child, sibling, return, pendingProps, memorizedProps, pendingWorkPriority и др. И благодаря этим новым свойствам у React получилось реализовать приоритизацию и улучшить скорость работы React приложений.
    Скажи, пожалуйста, правильно ли я все понял? :)

    • @it-sin9k
      @it-sin9k  2 роки тому +1

      Честно говоря до файбера, я не до конца уверен, что из себя представляло виртуальное дерево. Если говорить предположениями, то я думаю ваши мысли очень близки к истине

  • @dmitrysvetlov6001
    @dmitrysvetlov6001 Рік тому

    Превосходный доклад, спасибо

  • @lenapeleka197
    @lenapeleka197 3 роки тому

    Спасибо тебе! после прочтения доки это видео супер!!!

  • @muratx10
    @muratx10 4 роки тому +2

    🔥 спасибо!

  • @dmtrkskv
    @dmtrkskv Рік тому

    Знал, что React использует какую-то эвристику для сравнения деревьев и знал, что при замене родительского узла происходит перемонтирование дочерних. Но то, что эти 2 факта так тесно связаны, стало для меня открытием) Спасибо)

    • @it-sin9k
      @it-sin9k  Рік тому

      Всегда пожалуйста :)

  • @dmitriyvahrameev4828
    @dmitriyvahrameev4828 3 роки тому

    Очень познавательная и полезная информация )

  • @romanmed9035
    @romanmed9035 2 роки тому

    я обновил реакт с 15.3 до 16.8 и вообще не заметил разницы в скооости работы проекта. при этом около 2500 нод присутствуют у большинства страниц по данным гугл тестирования.

    • @it-sin9k
      @it-sin9k  2 роки тому

      Интересный опыт :)
      Возможно у вас было написано приложение и так достаточно эффективно

  • @АндрейИльин-д6ж
    @АндрейИльин-д6ж 3 роки тому +1

    серёжки красивые. беленькие как снежинки.

  • @my-jorney
    @my-jorney 3 роки тому

    И сам спикер тоже как будто в DOMике с жёлтой крышей)

  • @МаксимВ-к9ч
    @МаксимВ-к9ч 3 роки тому

    ОГОНЬ! ТЫ - ГЕНИЙ! НИКТО НЕ МОЖЕТ ЛУЧШЕ ОБЪЯСНИТЬ. ДАЖЕ СОЗДАТЕЛИ REACT!

    • @it-sin9k
      @it-sin9k  3 роки тому +1

      Ого) такая высокая оценка!) спасибо!)

  • @from_brest2631
    @from_brest2631 2 роки тому

    чётко, благодарю за доклад

  • @ddflruc
    @ddflruc 2 роки тому

    Очень полезный доклад!!!!!

  • @cikada3398
    @cikada3398 3 роки тому

    Красавчик, мало такого контента на просторах интеренета

    • @it-sin9k
      @it-sin9k  3 роки тому

      Спасибо) по этой причине и решил завести этот канал) сам мало где могу получить информацию)

  • @АлексейСоснин-р4й
    @АлексейСоснин-р4й 2 роки тому +1

    *Про 60 FPS вообще орнул)), то-то все мобилки уже под 120 герц экраны делают))), мысль то твоя понятна, что мы рендерем виртуальный дом больше раз чем рендерим в реальный. По этому конкурент моде накапливает изменения стейтов, батчит их, а потом раз в кадр рендерит*

  • @arsen..
    @arsen.. 2 роки тому +2

    Блин так хорошо начал. И начинаешь втирать про 60 кадров)

    • @it-sin9k
      @it-sin9k  2 роки тому

      не уловил суть проблемы :(

  • @N1ckish
    @N1ckish Рік тому

    Великолепный канал! Где я был раньше?

    • @it-sin9k
      @it-sin9k  Рік тому

      Добро пожаловать :)

  • @boldureans
    @boldureans 3 роки тому

    IT синяк это я каждую пятницу

  • @ivan_kobzar
    @ivan_kobzar 2 роки тому

    Спасибо за доклад, кому интересно более глубокое и детальное объяснение - ua-cam.com/video/0ympFIwQFJw/v-deo.html&ab_channel=PhilipFabianek

  • @VeaceslavBARBARII
    @VeaceslavBARBARII 10 місяців тому

    2:29 2024 год, мы как пользователи хотим 120Hz )))

    • @it-sin9k
      @it-sin9k  10 місяців тому

      Всегда нужно больше))

  • @NursultanBegaliev
    @NursultanBegaliev Рік тому

    Большое спасибо 🙏

  • @AlexeyNeklesa
    @AlexeyNeklesa 2 роки тому

    Пою диферамбы данному каналу )

  • @vladvoloshenko5701
    @vladvoloshenko5701 2 роки тому

    смотрю постоянно на часы, тебе идёт))
    подскажи пожалуйста модель)

    • @it-sin9k
      @it-sin9k  2 роки тому

      Один из самых неожиданных комментариев)
      это подарок жены, фоточка прилагается :)
      joxi.net/bmoDvZzTOJg672

    • @vladvoloshenko5701
      @vladvoloshenko5701 2 роки тому

      @@it-sin9k первый раз с днём недели часы вижу, спасибо что поделился фоткой, крутые)

  • @TarasovFrontDev
    @TarasovFrontDev Рік тому

    Знаете, какой вопрос не разобран: что если задать div key=1, а затем поменять его на span key=1. Будет ререндер?

    • @it-sin9k
      @it-sin9k  Рік тому

      да) конечно) как я и говорил в видео, если тип изменится, значит и будет mount новый) и не важно, что key тот же) это независимые условия)

  • @kspshnik
    @kspshnik Рік тому

    А нет прямо ссылочки на статью Эндрю Кларка?

    • @it-sin9k
      @it-sin9k  Рік тому

      да, конечно)
      github.com/acdlite/react-fiber-architecture

  • @shilza8336
    @shilza8336 2 роки тому

    Спасибо!

  • @jses8560
    @jses8560 3 роки тому

    Супер-доклад.

    • @it-sin9k
      @it-sin9k  3 роки тому

      Спасибо! много хороших отзывов получил доклад, поэтому надо видимо делать еще доклады)

  • @lafoyta7674
    @lafoyta7674 3 місяці тому

    Есть устаревшая информация в видео? Так как мне очень понравилось видео надеюсь ответите "нету")

    • @it-sin9k
      @it-sin9k  3 місяці тому

      да, вроде все актуально, разве что они еще накрутили поверх этого чуть сложнее)

  • @AbraKadabra000
    @AbraKadabra000 3 роки тому

    Крутой чувак! не синяч там

  • @nikolaytydir2203
    @nikolaytydir2203 4 роки тому

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

    • @it-sin9k
      @it-sin9k  4 роки тому

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

    • @nikolaytydir2203
      @nikolaytydir2203 4 роки тому

      @@it-sin9k да, именно про те что в видео, спасибо

  • @Elator11777
    @Elator11777 3 роки тому

    Снимаю шляпу перед оратором!

  • @js-school-pro
    @js-school-pro Рік тому

    как реакт понимает что элемент не во viewport будет?

    • @it-sin9k
      @it-sin9k  Рік тому

      Вопрос хороший, точного ответа у меня нет. Если попробовать порассуждать, то React строит виртуальный DOM, который знает размеры всех блоков, позицию скрола и размер экрана пользователя тоже не сложно узнать. Вот все эти данные и используют

  • @paljm345
    @paljm345 2 роки тому

    В смысле человек не видит больше 60 кадров в сек??? Ещё как видит... стыдненько этого не знать(((

    • @it-sin9k
      @it-sin9k  2 роки тому

      Люблю комментарии под этим видео, чуть ниже человек пишет что я дурак, мол человек не видит больше 24 кадров, другой пишет стыдно не знать что человек видит больше))

    • @paljm345
      @paljm345 2 роки тому

      @@it-sin9k Ну, я не вру. Если челу показать 60 и 120 кадров, он разницу заметит с первых секунд))) Где-то слышал, что наш глаз способен воспринимать 2400 кадров в сек))) Ну короче, об этом есть куча инфы в инете))

    • @it-sin9k
      @it-sin9k  2 роки тому

      @@paljm345 Да, я тоже читал, особенно геймеры могут отличать все эти вещи. Но для веба это не сильно критично :)

    • @paljm345
      @paljm345 2 роки тому

      @@it-sin9k Для веба, 60 фпс, это как для геймера стабильные 200))

    • @it-sin9k
      @it-sin9k  2 роки тому +1

      @@paljm345 Хорошо сказано)

  • @ДенисПручковский-ы5ф

    Балииин, какой же зашквар в синезине работать после протестов..... Разочарование года

  • @dzmitryrabinkin
    @dzmitryrabinkin 2 роки тому

    Надеюсь сама команда этого канала не работает в синезисе.

  • @abbze8272
    @abbze8272 Рік тому

    Человек не может видеть больше 60 кадров в секунду? Это же не правда, вводить в заблуждение...

    • @it-sin9k
      @it-sin9k  Рік тому

      Самое интересное, что в комментариях много обвинений на эту тему) одни говорят люди и больше 24 не видят, другие не согласны, что больше 60 не видит человек)
      Мое мнение человек вроде как может видеть больше 60) это нужно разве что для геймеров и такого рода специфических кейсов. Для обычного сайта и 24 кадра в секунду уже много в большинстве мест) В рамках доклада, не самая важная казалось бы информация)

    • @abbze8272
      @abbze8272 Рік тому

      @@it-sin9k с этим полностью согласен, глаз видит больше 1000 фпс, но для сайтов хватит и 60, потому что далеко не у всех сейчас 60+ герц мониторы и для плавного, приятного вида сайта 60фпс вполне достаточно.
      Зажрались мы, недавно и 20фпс сайты было нормой :)

  • @bogdanshelomanov5668
    @bogdanshelomanov5668 3 роки тому

    Реакт кстате ещё в пдф умеет

  • @tagnati5585
    @tagnati5585 2 роки тому

    С момента про ограничение в 60 фпс желание смотреть дальше мгновенно отпало. Сейчас бы не знать такой базовой вещи что человеческий глаз не воспринимает частоту выше 24 кадров в секунду с соотношением сторон 16 на 9. Мда. Дизлайк.

    • @it-sin9k
      @it-sin9k  2 роки тому

      По этому поводу, я как то прочел интересную цитату: "Профессор Чопин убеждён, что для передачи информации нет смысла идти выше 24 кадров в секунду, принятых в кино. Тем не менее он понимает, что люди видят разницу между 20 и 60 герцами."
      60 кадров в секунду - это уже своего рода стандарт, при котором, людей все устраивает. Даже в играх больше разгонять свой комп смысла особого нет.
      Если вы думаете, что все это фигня, то обратите внимание, что даже React core команда ориентируется на те же 60fps, когда говорит о перфомансе: "A compelling reason for using React Native instead of WebView-based tools is to achieve 60 frames per second and a native look and feel to your apps."
      reactnative.dev/docs/performance

  • @Evgeny..
    @Evgeny.. 3 роки тому +1

    Отличное видео!

  • @МирославМилаев
    @МирославМилаев 2 місяці тому

    Спасибо!🥳