React Reconciliation

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

КОМЕНТАРІ • 140

  • @UlbiTV
    @UlbiTV 3 роки тому +261

    Очень хорошее видео!)

    • @sashasyhinin3928
      @sashasyhinin3928 3 роки тому +26

      Воу не ожидал тебя тут увидеть, Мужик у тебя тоже очень крутой контент. Ulbi TV, Синяк, CodeDojo, Frontend science и Минин мой личный TOP 5 - рекомендую!

    • @UlbiTV
      @UlbiTV 3 роки тому +6

      @@sashasyhinin3928 ✊🏻✊🏻

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

      @@sashasyhinin3928 полностью с тобой согласен

    • @danildemchenko6004
      @danildemchenko6004 3 роки тому +21

      ​@@sashasyhinin3928 Это же чем тебе люди так насолили, что ты Минина рекомендуешь к просмотру?)))

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

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

  • @dmag3287
    @dmag3287 2 роки тому +7

    пожалуй лучшее 👍 в youtube русскоязычное объяснение механизма React Reconciliation

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

    Епта это вообще лучшее объяснения как работает virtual DOM под капотом. Thanks

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

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

  • @krollsiphone
    @krollsiphone 3 роки тому +5

    Случайно наткнулся на этот канал (рекомендации) и офигел. Господа (вы же там не один?), это просто... классно! Теперь задача - пересмотреть все...

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

      Добро пожаловать!)
      нас 2-ое) программист и видео инженер)
      Мы будем благодарны, если о нас еще и коллегам расскажете)

  • @Ramosok
    @Ramosok 2 роки тому +1

    Классно что я нашёл этот канал! просто супер!

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

      Согласен) Классно, что вы нашли этот канал))

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

    Увидел пост в хабре, посмотрел видос, лайкнул и подписался красава .Контент годный советую

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

      Спасибо! Будем рады, если поделитесь с коллегами)

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

    Невероятно качественный контент. Спасибо!

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

      Спасибо! мы очень стараемся)

  • @БатырбекАйгалиев
    @БатырбекАйгалиев 4 роки тому +4

    Спасибо за видео! Объяснили всё понятно и доступно. Жду новых выпусков работы!)

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

      Интересно собрать фидбек, какой тип выпуском наиболее интересен: это практические с react-router или может социальные проблемы как то глубже каким то исследованиям уделять или именно хочется понять как реакт работает глубже?

    • @БатырбекАйгалиев
      @БатырбекАйгалиев 4 роки тому +1

      @@it-sin9k Лично мне больше нравятся видео типа этого, потому что я пока не встречал в русском сегменте объяснения reconciliation, да и мало кто об этом рассказывает.

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

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

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

    Отличный ролик! И графические примеры очень классные! Спасибо!

  • @romanchebotaev_frontendblog

    Спасибо! Очень глубокое исследование темы)

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

    Потрясающе! Просто потрясающе!

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

    Вы лучшие!

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

    Оч круто, нужно еще подробностей по подкапотке реакта

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

      Заказ принят! Заказ выполнен! Целый плейлист про подкапотку реакта:
      ua-cam.com/play/PLz_dGYmQRrr-g02jHDzuu-6VlOt8-8Uu5.html

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

    поделился плейлистом с коллегами по работе. реально хороший у вас контент по работе реакта

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

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

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

    Это поям хорошо, лойс и заслуженный комментарий!

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

    Очень ясно. react, react-reconciliation, react details, react-fiber

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

    Спасибо, все кратко и по делу !

  • @igormalykhin5528
    @igormalykhin5528 5 місяців тому

    Автору большая благодарность за материал и экпертизу. Очень помогаете учиться

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

    спасибо, было интересно и полезно. Не понятно, почему так мало подписчиков.

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

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

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

      @@it-sin9k как только они появятся, то обязательно. Так скажем от отца к сыну)))

  • @Ramosok
    @Ramosok 7 місяців тому

    каждый раз перед собесами просматриваю большенство твоих роликов, очень классные выжимки без воды.

    • @it-sin9k
      @it-sin9k  7 місяців тому +1

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

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

    Ну, что сказать? Это очень круто! Лайк и комментарий!

  • @АндрейЛенков-м3е

    Очень крутые видео делаешь, спасибо, что делишься знаниями и своими исследованиями. Успехов

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

    Geniously (react, react-reconciliation, react details, react-fiber)

  • @СтаниславЗдановский

    Отлично все рассказываешь! Молодец! Продолжай еще!))

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

      Спасибо!) будем стараться и дальше Вас радовать)

  • @ИванБорисов-б1ж
    @ИванБорисов-б1ж 4 роки тому +1

    Топ контент!!! Давай ещё видео по теме react под капотом

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

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

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

    Htmlacademy даже в доп материалах на курсе по реакту указывает ссыль на твое видео по этой теме))

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

      Ого) ничего себе) вот это неожиданно)

  • @ВероникаТен-ф3л

    Благодарю за видео!!!

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

    well yeah if you wanna do it primarily

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

    Чувак, почему? Почему я не видел тебя раньше) сегодня в офисе коллега посоветовал твой канал сказав что ты «до безобразия любопытный». Мне это очень близко) продолжай в том же духе. Подписка, лайк, колокольчик и репост)

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

      Ого!) Добро пожаловать на борт, будем вместе синячить))

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

      @@it-sin9k крутяк) давай синячить вместе))

  • @АнастасияШелухина-з7е

    отличный контент) браво!

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

    супер,спс ! React Reconciliation

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

    топовый ролик !!!

  • @Сергей-е4г5п
    @Сергей-е4г5п 2 роки тому

    Хорошее объяснение! Спасибо!

  • @ОлегПетров-п4у
    @ОлегПетров-п4у 3 роки тому

    Очень полезный контент! Спасибо! (React Reconciliation)

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

      Посмотрите и другие видео на тему React, там много полезного)

  • @РусланКононов-ч9я

    Храни тебя господь

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

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

  • @АлексейЛоскутников-ю4р

    Интересное видео! Спасибо.

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

    Огонь!

  • @mokkamokka4097
    @mokkamokka4097 8 місяців тому

    ты лучший!

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

      Спасибо!

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

    вдохновляет

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

    nice functional good working easy install thanks

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

    круто!

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

    Great job!

  • @379sanek
    @379sanek 3 роки тому

    спасибо!!

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

    Чел это топ

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

      Все для вас)
      можете еще с коллегами поделиться)

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

    Пожалуйста, запишите новый ролик о Fiber

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

      А что хотелось бы увидеть в этом видео?

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

      @@it-sin9k В какой момент и как именно строятся fiber-объекты, что именно происходит когда работа прерывается и в этот момент приходят новые изменения взамен старых (сверка начинается заново или продолжается с момента остановки). Когда нужно учитывать знания о fiber, как можно их применить (т.е. показать на живых примерах, как работало раньше и что улучшилось сейчас).

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

    Топ!

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

    Привет, Синяк!
    Я заметил что ты поздоровался)
    3 раза заметил, гыыыы

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

      Привет) будет 4-ый раз)

  • @underpog5347
    @underpog5347 2 роки тому +1

    а как react знает какую ноду нужно обновить? вот у нас внутри разметки используеться значение стейта "isTrue"
    {isTrue && 1}
    2
    когда "isTrue" поменяеться react должен поменять только эту часть разметки {isTrue&& 1}, но как он знает что именно эта нода изменилась?
    он сравнивает результат вызова
    React.createElement("div", null, isTrue &&React.createElement("h1", null, "1"),React.createElement("h1", null, "2"));
    до и после изменения "isTrue "?

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

      Когда вы обновили state в вашем компоненте, То React помещает fiber ноду, которую надо обновить. Я тот механизм не изучал особо, но думаю это работа с Lines, у них часто мелькает такой код, думаю они чуть ли не в массив собираю ноды которые надо обновить и обновляют их.

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

      ясно, спасибо за качественный контент

  • @КириллАкутин-п3д
    @КириллАкутин-п3д 3 роки тому

    Жду этих вопросов на следующем собесе

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

      я минимально по этой теме спрашиваю) скорее ковырну в курсе человек или нет) если нет ничего страшного)

    • @КириллАкутин-п3д
      @КириллАкутин-п3д 3 роки тому

      @@it-sin9k На одном из собесов, дали тестовое задание, реализовать свой алгоритм VirtualDom. Позиция была что-то между strong junior и middle. Поэтому удивляться уже не приходится никаким вопросам)

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

      какие-то изуверы, занимаются всякой дичью)

  • @JestNest-b8v
    @JestNest-b8v 8 місяців тому

    @АйТиСиняк, обнови плиз ссылки на priorities list

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

    Агонь!!!!!!

  • @ДмитрийКлимов-й2щ
    @ДмитрийКлимов-й2щ 2 роки тому

    Привет! Ты сам рисуешь/анимируешь сюжеты?

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

      Привет! Я составляю контент и записываю аудио, а второй человек по тз все это визуализирует.

  • @НикитаГончаров-е8ш

    Топ🔥🔥🔥
    Актуальна ли эта информация для функциональных компонентов?

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

      Да, очень даже актуальна :)

    • @НикитаГончаров-е8ш
      @НикитаГончаров-е8ш Рік тому

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

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

      @@НикитаГончаров-е8ш Доверяй но проверяй!)

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

    А как насчет 120 фпс на новых 120 герцовых экранах? Интересно, будет ли когда-то доработка этого момента. Спасибо за такой качественный контент

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

      думаю не в ближайшее время) это все же сайт, и сайтам не нужно чаще всего такая детализация) хотя будущее не за горами и возможно все)

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

    Подскажите, правильно ли в нынешних реалиях будет работать в основном с Redux, а не хуками? Я уже не совсем новичок и мне показался Redux более приятным и понятным..

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

      И конечно же снова спасибо за новое видео!

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

      Тут надо сразу понять что вы подразумеваете под хуками. Потому что Redux предоставляет свое API так же и через хуки. Поэтому по факту можно использовать хуки и redux одновременно.
      Если же речь идет о написании полностью проекта с использовать useReducer и useContext, то вероятно я бы не рекомендовал вам этого делать. Это достаточно экспериментальный путь, без особого опыта таким заниматься не рекоммендую, да и пользу явную это не принесет.
      Поэтому используйте Redux и не переживайте)

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

      @@it-sin9k да, я про useReducer и useContext, спасибо большое за содержательный ответ!

  • @ДмитрийГлазков-ф2ю

    ссылки на github к сожалению устарели

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

    Почему консоль логи в ребенках отрисовываются первее, чем в родителе? Все обернуто в мемо и есть юзЕффекты

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

      я уже не помню, где там точно console.log стоит. Сбросьте временную метку или опишите ситуацию :)

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

      @@it-sin9k Это не в Вашем ролике. У меня всегда было представление, что рендер идет сверху вниз и юзеффекты так же должны отрабатывать. Но если создать пустой проект, сделать родителя и ребенка, то в ребенке юзеффект отработает первым. Почему?

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

      я частенько этот вопрос задаю на собеседованиях)
      суть следующая. Допустим есть компонент parent и child.
      вызываться будет следующим образом
      return (parent) -> return (child) -> useEffect(child) -> useEffect(parent)
      1. Логика достаточно простая. Сначала вам надо начать рендерить родитель, чтобы узнать, а какие дети есть. Поэтому вызывается return (parent), там он узнает о детях и идет их вызывать return (child)
      2. С другой стороны useEffect вызывается только после того как текущий компонент закончил полностью рендер. А может ли компонент parent закончить полностью рендер, если child еще не закончил. Поэтому useEffect(parent) вызывается только после того как все дети закончат рендеры

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

      @@it-sin9k Спасибо! Просто сильно заафектился на этом, когда у меня в компоненте и в юзеффекте получились разные состояние поля в стейте. Начал копать, но ничего умного не нашел.

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

      не за что :)

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

    Привет
    что имеется введу под допущением? Какие-то trade-offs для того, что бы покрыть более критичные сценарии?
    не совсем понял суть слова 'допущение'

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

      допущения, это допустим. У тебя приходят в функцию цифры. И ты говоришь допустим они будут целые и положительные. Таким образом тебе не надо больше добавлять проверки, на то что число отрицательно и не целое. И ты на этом экономишь ресурсы. Так и реакт сделал свои допущения, чтобы делать меньше проверок и сэкономить на этом вычислительные ресурсы

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

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

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

      Честно говоря я пока точно не отвечу, я недавно наткнулся на материал от Дена Абрамова, по поводу фаз, их там вроде даже 3 фразы, но я могу путать. Поэтому возможно соберусь с духом доизучаю и сделаю отдельный выпуск про это :)

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

      @@it-sin9k Ну третья precommit фаза. Вопрос про commit, я узнал ответ - реализация и в react core и в реакт дом.

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

      "Фаза commit это отправка изменений в render environment"
      Думаю что это, делая вывод из сказанного в видео что фазы разделены.

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

    Интересно, а Реакт приоритезирует DOM-операции в зависимости от сложности выполнения операции, то есть, если DOM-операция в виде анимации требует больше времени, то она будет идти первой или это не обязательно? Просто по каким критериям Реакт ставит те или иные задачи на первое место ?

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

      я честно скажу, что с этой темой мало работал, но из того что я видел, у них описаны через назовем его "enum", где каждая операция соответствует одной из опций enum

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

      @@it-sin9k спасибо большое, за ответ). Ну а если строить догадки, то, как я понимаю, Реакт не обязательно делает приоритизацию задач по времени их выполнения. Т.к. анимация ховера может по времени выполняться, грубо говоря, за 20мс, а получение данных и их отображение может занять 50 мс, но Реакт поставит анимацию на первое место, как показано в вашем видео) Могу ошибаться, конечно

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

      сложно что-то прогнозировать без знания кода. Но тут точно надо учитывать event loop, считать тики процессора и переключаться между задачами

  • @Алексей-т2х8й
    @Алексей-т2х8й 3 роки тому

    +

  • @maxovsanyuk1033
    @maxovsanyuk1033 7 місяців тому

    👍💪

  • @balabuyew
    @balabuyew 9 місяців тому

    Алгоритм не описан..

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

      чего вам не хватило, чтобы сказать, что алгоритм описан?

    • @balabuyew
      @balabuyew 9 місяців тому

      @@it-sin9kВ каком порядке обходятся ноды-чилдрены одного парента? И, особенно, как этот порядок обхода совмещается с тем фактом, что некоторые ноды имеют ключ?

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

      @@balabuyew Это уже скорее про детали имплементации. Можно было бы с таким же успехом еще ожидать подробного рассказать о разных фазах рендеринга. Это тоже ключевая фича. Разбор как разные типы компонентов по разному обрабатываются. И все это за 10 минут. Как то это не очень реалистично звучит

    • @balabuyew
      @balabuyew 9 місяців тому

      @@it-sin9kЭто не детали имплеметнации.
      Если, например, у меня есть десять чилдренов в одном каком-то паренте, пять из них имеют ключи, а остальные пять - не имеют, да еще и в новом состоянии чилдрены с ключами были передвинуты на другие места, я хочу знать какие именно чилдрены будут обновлены, а какие пересозданы заново.
      В документации, которую вы все дружно пересказываете, об этом не написано.

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

      @@balabuyew Про это есть отдельное видео ua-cam.com/video/OtAlPwW8DNU/v-deo.html . Да и про ключи упоминалось даже в этом видео, что это и зачем это)

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

    спасибо, а то все рассказывают и показывают уже как делать на живом проекте или с 0 не обьясняя главных понятий работы реакта в целом

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

      Добро пожаловать на канал! Тут много видео про то как реакт работает из нутри)