Воу не ожидал тебя тут увидеть, Мужик у тебя тоже очень крутой контент. Ulbi TV, Синяк, CodeDojo, Frontend science и Минин мой личный TOP 5 - рекомендую!
Интересно собрать фидбек, какой тип выпуском наиболее интересен: это практические с react-router или может социальные проблемы как то глубже каким то исследованиям уделять или именно хочется понять как реакт работает глубже?
@@it-sin9k Лично мне больше нравятся видео типа этого, потому что я пока не встречал в русском сегменте объяснения reconciliation, да и мало кто об этом рассказывает.
Спасибо за фидбек!) для этого плейлиста есть идеи уже для нескольких видео, так же с подсмотреть под капот реакта) но провести исследование и сделать такое видео достаточно трудоемкий процесс, поэтому этот плейлист будет не очень часто пополняться
Спасибо!) как раз видео которое прямо сейчас мы готовим (завтра буду записывать аудио дорожку) про React под капотом)) Но такие видео требуют исследований, поэтому немного дольше видео готовится)
Чувак, почему? Почему я не видел тебя раньше) сегодня в офисе коллега посоветовал твой канал сказав что ты «до безобразия любопытный». Мне это очень близко) продолжай в том же духе. Подписка, лайк, колокольчик и репост)
топое видео! Спасибо) после просмотра видео на канале начал больше понимать как можно оптимизировать код, и какие факторы на это влияют(как реакт определяет когда перерендер делать)
@@it-sin9k В какой момент и как именно строятся fiber-объекты, что именно происходит когда работа прерывается и в этот момент приходят новые изменения взамен старых (сверка начинается заново или продолжается с момента остановки). Когда нужно учитывать знания о fiber, как можно их применить (т.е. показать на живых примерах, как работало раньше и что улучшилось сейчас).
а как 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 "?
Когда вы обновили state в вашем компоненте, То React помещает fiber ноду, которую надо обновить. Я тот механизм не изучал особо, но думаю это работа с Lines, у них часто мелькает такой код, думаю они чуть ли не в массив собираю ноды которые надо обновить и обновляют их.
@@it-sin9k На одном из собесов, дали тестовое задание, реализовать свой алгоритм VirtualDom. Позиция была что-то между strong junior и middle. Поэтому удивляться уже не приходится никаким вопросам)
@@it-sin9k я после этого видео решил даже проверить на своём опыте как это работает, восторгу не было предела))) И на функциональном компоненте действительно также ведёт себя
Подскажите, правильно ли в нынешних реалиях будет работать в основном с Redux, а не хуками? Я уже не совсем новичок и мне показался Redux более приятным и понятным..
Тут надо сразу понять что вы подразумеваете под хуками. Потому что Redux предоставляет свое API так же и через хуки. Поэтому по факту можно использовать хуки и redux одновременно. Если же речь идет о написании полностью проекта с использовать useReducer и useContext, то вероятно я бы не рекомендовал вам этого делать. Это достаточно экспериментальный путь, без особого опыта таким заниматься не рекоммендую, да и пользу явную это не принесет. Поэтому используйте Redux и не переживайте)
@@it-sin9k Это не в Вашем ролике. У меня всегда было представление, что рендер идет сверху вниз и юзеффекты так же должны отрабатывать. Но если создать пустой проект, сделать родителя и ребенка, то в ребенке юзеффект отработает первым. Почему?
я частенько этот вопрос задаю на собеседованиях) суть следующая. Допустим есть компонент parent и child. вызываться будет следующим образом return (parent) -> return (child) -> useEffect(child) -> useEffect(parent) 1. Логика достаточно простая. Сначала вам надо начать рендерить родитель, чтобы узнать, а какие дети есть. Поэтому вызывается return (parent), там он узнает о детях и идет их вызывать return (child) 2. С другой стороны useEffect вызывается только после того как текущий компонент закончил полностью рендер. А может ли компонент parent закончить полностью рендер, если child еще не закончил. Поэтому useEffect(parent) вызывается только после того как все дети закончат рендеры
@@it-sin9k Спасибо! Просто сильно заафектился на этом, когда у меня в компоненте и в юзеффекте получились разные состояние поля в стейте. Начал копать, но ничего умного не нашел.
допущения, это допустим. У тебя приходят в функцию цифры. И ты говоришь допустим они будут целые и положительные. Таким образом тебе не надо больше добавлять проверки, на то что число отрицательно и не целое. И ты на этом экономишь ресурсы. Так и реакт сделал свои допущения, чтобы делать меньше проверок и сэкономить на этом вычислительные ресурсы
React Reconciliation имеет две фазы, commit и render. Фаза commit это отправка изменений в render environment или commit реализация уже внутри render environment?
Честно говоря я пока точно не отвечу, я недавно наткнулся на материал от Дена Абрамова, по поводу фаз, их там вроде даже 3 фразы, но я могу путать. Поэтому возможно соберусь с духом доизучаю и сделаю отдельный выпуск про это :)
Интересно, а Реакт приоритезирует DOM-операции в зависимости от сложности выполнения операции, то есть, если DOM-операция в виде анимации требует больше времени, то она будет идти первой или это не обязательно? Просто по каким критериям Реакт ставит те или иные задачи на первое место ?
я честно скажу, что с этой темой мало работал, но из того что я видел, у них описаны через назовем его "enum", где каждая операция соответствует одной из опций enum
@@it-sin9k спасибо большое, за ответ). Ну а если строить догадки, то, как я понимаю, Реакт не обязательно делает приоритизацию задач по времени их выполнения. Т.к. анимация ховера может по времени выполняться, грубо говоря, за 20мс, а получение данных и их отображение может занять 50 мс, но Реакт поставит анимацию на первое место, как показано в вашем видео) Могу ошибаться, конечно
@@it-sin9kВ каком порядке обходятся ноды-чилдрены одного парента? И, особенно, как этот порядок обхода совмещается с тем фактом, что некоторые ноды имеют ключ?
@@balabuyew Это уже скорее про детали имплементации. Можно было бы с таким же успехом еще ожидать подробного рассказать о разных фазах рендеринга. Это тоже ключевая фича. Разбор как разные типы компонентов по разному обрабатываются. И все это за 10 минут. Как то это не очень реалистично звучит
@@it-sin9kЭто не детали имплеметнации. Если, например, у меня есть десять чилдренов в одном каком-то паренте, пять из них имеют ключи, а остальные пять - не имеют, да еще и в новом состоянии чилдрены с ключами были передвинуты на другие места, я хочу знать какие именно чилдрены будут обновлены, а какие пересозданы заново. В документации, которую вы все дружно пересказываете, об этом не написано.
Очень хорошее видео!)
Воу не ожидал тебя тут увидеть, Мужик у тебя тоже очень крутой контент. Ulbi TV, Синяк, CodeDojo, Frontend science и Минин мой личный TOP 5 - рекомендую!
@@sashasyhinin3928 ✊🏻✊🏻
@@sashasyhinin3928 полностью с тобой согласен
@@sashasyhinin3928 Это же чем тебе люди так насолили, что ты Минина рекомендуешь к просмотру?)))
Вот если ульби такое говорит, то я просто физически не смогу не чекнуть этот видос)
пожалуй лучшее 👍 в youtube русскоязычное объяснение механизма React Reconciliation
Спасибо!
Епта это вообще лучшее объяснения как работает virtual DOM под капотом. Thanks
Добро пожаловать!)
Случайно наткнулся на этот канал (рекомендации) и офигел. Господа (вы же там не один?), это просто... классно! Теперь задача - пересмотреть все...
Добро пожаловать!)
нас 2-ое) программист и видео инженер)
Мы будем благодарны, если о нас еще и коллегам расскажете)
Классно что я нашёл этот канал! просто супер!
Согласен) Классно, что вы нашли этот канал))
Увидел пост в хабре, посмотрел видос, лайкнул и подписался красава .Контент годный советую
Спасибо! Будем рады, если поделитесь с коллегами)
Невероятно качественный контент. Спасибо!
Спасибо! мы очень стараемся)
Спасибо за видео! Объяснили всё понятно и доступно. Жду новых выпусков работы!)
Интересно собрать фидбек, какой тип выпуском наиболее интересен: это практические с react-router или может социальные проблемы как то глубже каким то исследованиям уделять или именно хочется понять как реакт работает глубже?
@@it-sin9k Лично мне больше нравятся видео типа этого, потому что я пока не встречал в русском сегменте объяснения reconciliation, да и мало кто об этом рассказывает.
Спасибо за фидбек!) для этого плейлиста есть идеи уже для нескольких видео, так же с подсмотреть под капот реакта) но провести исследование и сделать такое видео достаточно трудоемкий процесс, поэтому этот плейлист будет не очень часто пополняться
Отличный ролик! И графические примеры очень классные! Спасибо!
Спасибо!
Спасибо! Очень глубокое исследование темы)
Потрясающе! Просто потрясающе!
Спасибо!
Вы лучшие!
Оч круто, нужно еще подробностей по подкапотке реакта
Заказ принят! Заказ выполнен! Целый плейлист про подкапотку реакта:
ua-cam.com/play/PLz_dGYmQRrr-g02jHDzuu-6VlOt8-8Uu5.html
поделился плейлистом с коллегами по работе. реально хороший у вас контент по работе реакта
Спасибо за поддержку и распостранение!)
Рекомендую еще посмотреть про SOLID плейлист, судя по голосованию, он людям больше понравился чем реакт даже)
Это поям хорошо, лойс и заслуженный комментарий!
Очень ясно. react, react-reconciliation, react details, react-fiber
Спасибо, все кратко и по делу !
Автору большая благодарность за материал и экпертизу. Очень помогаете учиться
спасибо, было интересно и полезно. Не понятно, почему так мало подписчиков.
Спасибо!) Про мало подписчиков люди пишут мне, еще когда было 100 подписчиков)) если поделитесь с коллегами, буду очень признателен!)
@@it-sin9k как только они появятся, то обязательно. Так скажем от отца к сыну)))
каждый раз перед собесами просматриваю большенство твоих роликов, очень классные выжимки без воды.
круто!) мне периодически говорят, что мои ролики помогают готовиться к собесам) очень радует)
Ну, что сказать? Это очень круто! Лайк и комментарий!
Очень крутые видео делаешь, спасибо, что делишься знаниями и своими исследованиями. Успехов
Geniously (react, react-reconciliation, react details, react-fiber)
Отлично все рассказываешь! Молодец! Продолжай еще!))
Спасибо!) будем стараться и дальше Вас радовать)
Топ контент!!! Давай ещё видео по теме react под капотом
Спасибо!) как раз видео которое прямо сейчас мы готовим (завтра буду записывать аудио дорожку) про React под капотом)) Но такие видео требуют исследований, поэтому немного дольше видео готовится)
Htmlacademy даже в доп материалах на курсе по реакту указывает ссыль на твое видео по этой теме))
Ого) ничего себе) вот это неожиданно)
Благодарю за видео!!!
Спасибо!!!
well yeah if you wanna do it primarily
Чувак, почему? Почему я не видел тебя раньше) сегодня в офисе коллега посоветовал твой канал сказав что ты «до безобразия любопытный». Мне это очень близко) продолжай в том же духе. Подписка, лайк, колокольчик и репост)
Ого!) Добро пожаловать на борт, будем вместе синячить))
@@it-sin9k крутяк) давай синячить вместе))
отличный контент) браво!
супер,спс ! React Reconciliation
топовый ролик !!!
Хорошее объяснение! Спасибо!
Очень полезный контент! Спасибо! (React Reconciliation)
Посмотрите и другие видео на тему React, там много полезного)
Храни тебя господь
Аминь!
топое видео! Спасибо) после просмотра видео на канале начал больше понимать как можно оптимизировать код, и какие факторы на это влияют(как реакт определяет когда перерендер делать)
Интересное видео! Спасибо.
Огонь!
ты лучший!
Спасибо!
вдохновляет
nice functional good working easy install thanks
круто!
Great job!
Thank you!)
спасибо!!
Чел это топ
Все для вас)
можете еще с коллегами поделиться)
Пожалуйста, запишите новый ролик о Fiber
А что хотелось бы увидеть в этом видео?
@@it-sin9k В какой момент и как именно строятся fiber-объекты, что именно происходит когда работа прерывается и в этот момент приходят новые изменения взамен старых (сверка начинается заново или продолжается с момента остановки). Когда нужно учитывать знания о fiber, как можно их применить (т.е. показать на живых примерах, как работало раньше и что улучшилось сейчас).
Топ!
Привет, Синяк!
Я заметил что ты поздоровался)
3 раза заметил, гыыыы
Привет) будет 4-ый раз)
а как 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 "?
Когда вы обновили state в вашем компоненте, То React помещает fiber ноду, которую надо обновить. Я тот механизм не изучал особо, но думаю это работа с Lines, у них часто мелькает такой код, думаю они чуть ли не в массив собираю ноды которые надо обновить и обновляют их.
ясно, спасибо за качественный контент
Жду этих вопросов на следующем собесе
я минимально по этой теме спрашиваю) скорее ковырну в курсе человек или нет) если нет ничего страшного)
@@it-sin9k На одном из собесов, дали тестовое задание, реализовать свой алгоритм VirtualDom. Позиция была что-то между strong junior и middle. Поэтому удивляться уже не приходится никаким вопросам)
какие-то изуверы, занимаются всякой дичью)
@АйТиСиняк, обнови плиз ссылки на priorities list
Агонь!!!!!!
Привет! Ты сам рисуешь/анимируешь сюжеты?
Привет! Я составляю контент и записываю аудио, а второй человек по тз все это визуализирует.
Топ🔥🔥🔥
Актуальна ли эта информация для функциональных компонентов?
Да, очень даже актуальна :)
@@it-sin9k я после этого видео решил даже проверить на своём опыте как это работает, восторгу не было предела)))
И на функциональном компоненте действительно также ведёт себя
@@НикитаГончаров-е8ш Доверяй но проверяй!)
А как насчет 120 фпс на новых 120 герцовых экранах? Интересно, будет ли когда-то доработка этого момента. Спасибо за такой качественный контент
думаю не в ближайшее время) это все же сайт, и сайтам не нужно чаще всего такая детализация) хотя будущее не за горами и возможно все)
Подскажите, правильно ли в нынешних реалиях будет работать в основном с Redux, а не хуками? Я уже не совсем новичок и мне показался Redux более приятным и понятным..
И конечно же снова спасибо за новое видео!
Тут надо сразу понять что вы подразумеваете под хуками. Потому что Redux предоставляет свое API так же и через хуки. Поэтому по факту можно использовать хуки и redux одновременно.
Если же речь идет о написании полностью проекта с использовать useReducer и useContext, то вероятно я бы не рекомендовал вам этого делать. Это достаточно экспериментальный путь, без особого опыта таким заниматься не рекоммендую, да и пользу явную это не принесет.
Поэтому используйте Redux и не переживайте)
@@it-sin9k да, я про useReducer и useContext, спасибо большое за содержательный ответ!
ссылки на github к сожалению устарели
Почему консоль логи в ребенках отрисовываются первее, чем в родителе? Все обернуто в мемо и есть юзЕффекты
я уже не помню, где там точно console.log стоит. Сбросьте временную метку или опишите ситуацию :)
@@it-sin9k Это не в Вашем ролике. У меня всегда было представление, что рендер идет сверху вниз и юзеффекты так же должны отрабатывать. Но если создать пустой проект, сделать родителя и ребенка, то в ребенке юзеффект отработает первым. Почему?
я частенько этот вопрос задаю на собеседованиях)
суть следующая. Допустим есть компонент parent и child.
вызываться будет следующим образом
return (parent) -> return (child) -> useEffect(child) -> useEffect(parent)
1. Логика достаточно простая. Сначала вам надо начать рендерить родитель, чтобы узнать, а какие дети есть. Поэтому вызывается return (parent), там он узнает о детях и идет их вызывать return (child)
2. С другой стороны useEffect вызывается только после того как текущий компонент закончил полностью рендер. А может ли компонент parent закончить полностью рендер, если child еще не закончил. Поэтому useEffect(parent) вызывается только после того как все дети закончат рендеры
@@it-sin9k Спасибо! Просто сильно заафектился на этом, когда у меня в компоненте и в юзеффекте получились разные состояние поля в стейте. Начал копать, но ничего умного не нашел.
не за что :)
Привет
что имеется введу под допущением? Какие-то trade-offs для того, что бы покрыть более критичные сценарии?
не совсем понял суть слова 'допущение'
допущения, это допустим. У тебя приходят в функцию цифры. И ты говоришь допустим они будут целые и положительные. Таким образом тебе не надо больше добавлять проверки, на то что число отрицательно и не целое. И ты на этом экономишь ресурсы. Так и реакт сделал свои допущения, чтобы делать меньше проверок и сэкономить на этом вычислительные ресурсы
React Reconciliation имеет две фазы, commit и render. Фаза commit это отправка изменений в render environment или commit реализация уже внутри render environment?
Честно говоря я пока точно не отвечу, я недавно наткнулся на материал от Дена Абрамова, по поводу фаз, их там вроде даже 3 фразы, но я могу путать. Поэтому возможно соберусь с духом доизучаю и сделаю отдельный выпуск про это :)
@@it-sin9k Ну третья precommit фаза. Вопрос про commit, я узнал ответ - реализация и в react core и в реакт дом.
"Фаза commit это отправка изменений в render environment"
Думаю что это, делая вывод из сказанного в видео что фазы разделены.
Интересно, а Реакт приоритезирует DOM-операции в зависимости от сложности выполнения операции, то есть, если DOM-операция в виде анимации требует больше времени, то она будет идти первой или это не обязательно? Просто по каким критериям Реакт ставит те или иные задачи на первое место ?
я честно скажу, что с этой темой мало работал, но из того что я видел, у них описаны через назовем его "enum", где каждая операция соответствует одной из опций enum
@@it-sin9k спасибо большое, за ответ). Ну а если строить догадки, то, как я понимаю, Реакт не обязательно делает приоритизацию задач по времени их выполнения. Т.к. анимация ховера может по времени выполняться, грубо говоря, за 20мс, а получение данных и их отображение может занять 50 мс, но Реакт поставит анимацию на первое место, как показано в вашем видео) Могу ошибаться, конечно
сложно что-то прогнозировать без знания кода. Но тут точно надо учитывать event loop, считать тики процессора и переключаться между задачами
+
👍💪
Алгоритм не описан..
чего вам не хватило, чтобы сказать, что алгоритм описан?
@@it-sin9kВ каком порядке обходятся ноды-чилдрены одного парента? И, особенно, как этот порядок обхода совмещается с тем фактом, что некоторые ноды имеют ключ?
@@balabuyew Это уже скорее про детали имплементации. Можно было бы с таким же успехом еще ожидать подробного рассказать о разных фазах рендеринга. Это тоже ключевая фича. Разбор как разные типы компонентов по разному обрабатываются. И все это за 10 минут. Как то это не очень реалистично звучит
@@it-sin9kЭто не детали имплеметнации.
Если, например, у меня есть десять чилдренов в одном каком-то паренте, пять из них имеют ключи, а остальные пять - не имеют, да еще и в новом состоянии чилдрены с ключами были передвинуты на другие места, я хочу знать какие именно чилдрены будут обновлены, а какие пересозданы заново.
В документации, которую вы все дружно пересказываете, об этом не написано.
@@balabuyew Про это есть отдельное видео ua-cam.com/video/OtAlPwW8DNU/v-deo.html . Да и про ключи упоминалось даже в этом видео, что это и зачем это)
спасибо, а то все рассказывают и показывают уже как делать на живом проекте или с 0 не обьясняя главных понятий работы реакта в целом
Добро пожаловать на канал! Тут много видео про то как реакт работает из нутри)