React reconciliation: how it works and why should we care

  Рет қаралды 13,331

Developer Way

Developer Way

Күн бұрын

Пікірлер: 84
@leonardodeslf
@leonardodeslf Жыл бұрын
Please, never ever stop doing this! It's clear and explained in such a way that's easy and enjoyable to learn. Keep it up and thank you for sharing! 🤗🤗
@developerwaypatterns
@developerwaypatterns Жыл бұрын
Thank you! 😊
@Alastairtheduke1
@Alastairtheduke1 Жыл бұрын
I agree, you have an amazing gift for teaching!
@Antoshkiv1
@Antoshkiv1 11 ай бұрын
​@@developerwaypatterns I just woundering how did you get all this thing ? I just was googling for it and found your blog and videos but how did you learn it ?
@СергейМаркелов-м7м
@СергейМаркелов-м7м Жыл бұрын
What a crazy fact with same key and conditional rendering with null! Bravo 👏 Thank you for explaining these things
@mikitaishchanka4688
@mikitaishchanka4688 Жыл бұрын
Yeah! Your rock! There are tonnes of content for novices on KZbin or the Internet and almost no content with advanced, "diving deep", "under the hood" stuff topics. And you provide clear explanation, code samples with code sandbox so we can play with it. There is no way we can't understand the topic. Thank you!
@sebabratakundu
@sebabratakundu Жыл бұрын
I learned a lot from your posts and videos. Keep sharing your knowladge with us.
@ibrahimmohamed856
@ibrahimmohamed856 Жыл бұрын
Thanks for the information it clears a lot of confusing concepts in react that may make juniors struggle ❤
@developerwaypatterns
@developerwaypatterns Жыл бұрын
Glad it was useful! 😊
@Yoband706
@Yoband706 Жыл бұрын
And non-juniors to be honest. Loved this video.
@ostadomid3355
@ostadomid3355 3 ай бұрын
Haven't seen such easy explained detailed video ever. Really helpful. Hope to have more like this.
@Arzen84
@Arzen84 Жыл бұрын
I love your articles and I very much appreciate you taking the time to make a video of some of your articles! The way you break down the concept is brilliant! Once again, thank you so much!
@developerwaypatterns
@developerwaypatterns Жыл бұрын
Thank you, glad those are useful! 😊
@marcellciszekdruzynski
@marcellciszekdruzynski Жыл бұрын
Your videos and blog posts are just amazing keep up with the awesome job!
@marketkombat
@marketkombat Жыл бұрын
Thanks, your videos are always a pleasure to watch because I love under the hood stuffs and your delivery is very engaging.
@ahsaninkiad4781
@ahsaninkiad4781 14 күн бұрын
This is simply the best explanation
@gyros9162
@gyros9162 Жыл бұрын
Thank you so much, Nadezhda! The article is brilliant
@ezeobisunny
@ezeobisunny Жыл бұрын
I love your explanation, very clear and concise ❤
@MS-el8wj
@MS-el8wj Жыл бұрын
One of the best explanation for reconciliation. I loved it. Thanks for your time
@ngrnv
@ngrnv 11 ай бұрын
Amazing! That is the content I was looking for!
@LinhNguyen-bp9hd
@LinhNguyen-bp9hd Жыл бұрын
I'm impressed with React re-renders guide: everything, all at once that's why I came here, thanks for the content is it your real voice or machine?
@LinhNguyen-bp9hd
@LinhNguyen-bp9hd Жыл бұрын
would appreciate if you can recommend any good book on react kind of a deep dive like what you are doing
@developerwaypatterns
@developerwaypatterns Жыл бұрын
I'm about to release a book about exactly that in a few days, subscribe here: advanced-react.com/ :) The voice is real :)
@SouravRakshit_srv
@SouravRakshit_srv Жыл бұрын
I couldn't understand this topic from react docs thank you so much
@ayushkumar2436
@ayushkumar2436 3 ай бұрын
super helpful finaly have a better understanding of react reconcilliation
@lovikuanyshev
@lovikuanyshev Жыл бұрын
Really love your videos, thanks for the great work!
@cypherstone3005
@cypherstone3005 Жыл бұрын
You're amazing dude. Awesome explanation.
@warwolt
@warwolt Жыл бұрын
Incredible explanation
@RiadAlsaqal
@RiadAlsaqal Жыл бұрын
gold content. thank you.
@katsunoi
@katsunoi Жыл бұрын
amazing video! you have a great teaching style
@aissanadjemeddine1330
@aissanadjemeddine1330 9 ай бұрын
Thank you so much for this videos 💓💓💓
@moisesarias4563
@moisesarias4563 10 ай бұрын
Muchas gracias por el contenido, que forma tan sencilla de explicar conceptos más avanzados
@itsmepawan
@itsmepawan Жыл бұрын
I am newbie to React so didnt't understand it completely as this seems advanced but I still got one aha moment. Subbed! 🙌
@pritamchakroborty9924
@pritamchakroborty9924 Жыл бұрын
Really very helpful video. lots of knowledge thanks for sharing with us ❤
@sharifurrobin7720
@sharifurrobin7720 7 ай бұрын
Amazing explanation ❤
@shrekpar
@shrekpar Жыл бұрын
Большое спасибо за видео, очень интересно и познавательно. У вас хорошо получается доносить материал. И еще раз большое спасибо)
@developerwaypatterns
@developerwaypatterns Жыл бұрын
Glad you like it 😊
@hossamkamal2459
@hossamkamal2459 8 ай бұрын
That was clear and concise, thank you. Please, could you create those types of videos covering JavaScript object-oriented programming design patterns as well?
@HoangHahalehoang
@HoangHahalehoang Жыл бұрын
great job Nadia!
@silvioc9519
@silvioc9519 Жыл бұрын
i love so much your work. Thanks :D
@mohdsaquib380
@mohdsaquib380 10 ай бұрын
Your tutorials and articles are amazing and of deep knowledge. Can you please share how and what tools you use to create KZbin videos? Really your explanations are too the point and simple.
@developerwaypatterns
@developerwaypatterns 10 ай бұрын
Thank you! :) I use Final Cut Pro and sometimes Keynote
@mohamedbelal6820
@mohamedbelal6820 2 ай бұрын
amazing! Thank you so so much!
@victorpilyasinsky8736
@victorpilyasinsky8736 Жыл бұрын
Надя, спасибо, познавательно!
@story_of_us_
@story_of_us_ Жыл бұрын
I love your videos and blogs so much! Keep going and I will always support you! Btw, I really like your editor theme, do you mind to share with me? Thank you and happy coding!
@developerwaypatterns
@developerwaypatterns Жыл бұрын
Aww, thank you! 😊 It's not my editor, it's "Material" theme from carbon.now.sh/ 😅 But maybe can be installed in VSCode, don't know tbh
@sniperline047
@sniperline047 3 ай бұрын
soo good!
@innerstateofflow7777
@innerstateofflow7777 Жыл бұрын
this is god-tier
@MauricioCorzo-g7v
@MauricioCorzo-g7v Жыл бұрын
Great explanation! Next time you can make a video explaining the differences between manipulating the real DOM and the Virtual DOM and how is the diff algorithm?
@developerwaypatterns
@developerwaypatterns Жыл бұрын
Thank you! I'll add this to my todo list, great idea :)
@arjungaikwad9602
@arjungaikwad9602 Жыл бұрын
Hi Nadia, Thanks for such a beautiful explanation. I have a doubt regarding the calling the component function outside. Can't we just use a useCallback hook to store the same reference of the component?
@developerwaypatterns
@developerwaypatterns Жыл бұрын
If it doesn't depend on the state, then we indeed can, but what for? Much easier to move it outside. If it does depend on the state, then it will re-mount every time the state changes.
@this-user-is-not-loser
@this-user-is-not-loser 4 ай бұрын
Cool! Thanks!
@lovikuanyshev
@lovikuanyshev 11 ай бұрын
I came back to this video to clarify my understanding of React Reconciliation Algorithm and I have a question related to "Components inside other components" part of this video: Firstly, React will shallowly compare both React Elements by reference, since we have created a new React Component inside our current Component it will be recreated every re-render and the returning Element will be also always different, so this comparison will always return false. Also after watching your video "Elements, Children and Re-renders - Advanced React course, Episode 2" I found out that React won't trigger re-render if children React Elements are the same by reference and the only way to implement this is to use React Elements as props. React will compare them and will find out that they are the same and won't trigger re-render. My question is: If we will create React Component outside of the current Component it will save reference for the Component Function, but the returning Element will be always different and React Reconciliation will fail first shallow comparing, right? So whats the difference if we will declare React Component inside or outside of the current Component because anyway the returning React Element will have always different reference? Is it all about saving reference for the React Component Function? Thank you!
@developerwaypatterns
@developerwaypatterns 11 ай бұрын
> Is it all about saving reference for the React Component Function? This is exactly right :) If the Element changes (as will happen in both cases), but the "type" property is the same (as will happen with the reference to it, if it's declared outside) - then the component, that is represented by that Element, will just re-render. If the "type" changes as well - as will happen if the component is declared inside, then the component will re-mount. I.e. it will be destroyed and re-created from scratch.
@lovikuanyshev
@lovikuanyshev 11 ай бұрын
@@developerwaypatterns Thank you ;)
@berkaycirak
@berkaycirak 9 ай бұрын
Thank you so much, I think I have found a gem :) . Could you give more information about reactDom library vs react itself. As I know, reconcilation is done thanks to reactDom while diffing algorithm is handled by react library itself. When we do reactDom.render() all logic is started and reconcilation is started. Then, react element tree is created thanks to react library ( since there is a react.createElement ). What actually reactDom is doing? it just syncing real dom with virtual dom am I right? If so, reconcilation is handled by react library itself since it creates element trees? I am confused of that part
@JoeBuza
@JoeBuza Жыл бұрын
Quality content
@marouaniAymen
@marouaniAymen Жыл бұрын
Thanks a lot for the video, as always instructing content. Just a question, what tool did you use to animate and display code examples ?
@developerwaypatterns
@developerwaypatterns Жыл бұрын
Thank you! For animation - it's just Keynote :)
@markedby
@markedby Жыл бұрын
Thank you!
@sachinmalik5837
@sachinmalik5837 Жыл бұрын
Hi Nadia, Awesome stuff like how updates happens under the hood. But I have one question, regarding the example that you have used here, (link of CodeSandbox), the state(input of tax) will only persists, because we are not using controlled input right? if we were to provide value prop for Input which we more likely are then this will not happen right? I do understand the point of this example is for you to explain how DOM nodes are compared, Still wanted to know more about this. Cheers
@developerwaypatterns
@developerwaypatterns Жыл бұрын
Yep, exactly! Controlled state will belong to the parent, so there will be no weird side-effects like that. It's just input is the easiest way to create a meaningful example of a component with local state :) But the same situation will be with anything that holds its own state that is not synced with the parent
@sachinmalik5837
@sachinmalik5837 Жыл бұрын
@@developerwaypatterns Great Thank you for getting back to me. And I am so glad I found your article/blogs they are just nuggets of gold. Cheers
@shanemarchan658
@shanemarchan658 Жыл бұрын
Hey, how do you create the animations?
@developerwaypatterns
@developerwaypatterns Жыл бұрын
I use Keynote on Mac
@roym4457
@roym4457 Жыл бұрын
thank you so much for the video! i was just starting to study the source code of react and this helps a ton. i do have a question tho. is the diffing alg a part of fiber architecture?
@developerwaypatterns
@developerwaypatterns Жыл бұрын
It's implemented and used in fiber architecture, yep, but it existed before it. And not necessarily tied to it, other frameworks can use it as well.
@roym4457
@roym4457 Жыл бұрын
@@developerwaypatterns gotcha thank you :)
@sasdasaasdasdasdadad5354
@sasdasaasdasdasdadad5354 Жыл бұрын
Thanks !
@fiatluxinregnonoctis
@fiatluxinregnonoctis Жыл бұрын
Thank you
@jordantseng8330
@jordantseng8330 Жыл бұрын
god tier!
@sushantrajbanshi4508
@sushantrajbanshi4508 Жыл бұрын
Could you also explain another fancy word on React called "referential equality" ? Is it related to reconciliation ?
@developerwaypatterns
@developerwaypatterns Жыл бұрын
No, it's how javascript compares functions, objects and arrays (non-primitive values). It's happening not by their actual value, but by the reference to a value. So two identical arrays/functions/objects, when compared, will return false: ``` const a = [1,2]; const b = [1,2]; a === b; // will be false ``` Only if those variables are pointing to the same object, the comparison will be true: ``` const a = [1,2]; const b = a; a === b; // will be true ``` developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness
@sushantrajbanshi4508
@sushantrajbanshi4508 Жыл бұрын
@@developerwaypatterns Hmm, so the non-primitive values are passed by reference instead of a new copy of them. It finally clicks now :D I can't thank you enough 💚
@TheTrippyTerminal
@TheTrippyTerminal 10 ай бұрын
Thats it, friendship broken with React.
@arbnorlumezi8639
@arbnorlumezi8639 Жыл бұрын
Hmm if the inputs are stateful, say by a useState hook for each this behavior does not happen, good but why?
@developerwaypatterns
@developerwaypatterns Жыл бұрын
Can you share the code? Is state controlled by the inputs or by the parent?
@arbnorlumezi8639
@arbnorlumezi8639 Жыл бұрын
@@developerwaypatterns the state is controlled by the parent, same code just add 2 hooks for each input.
@developerwaypatterns
@developerwaypatterns Жыл бұрын
If the state is controlled by the parent, then those input don't hold their own state. And for bug to be visible, inputs should have something that they control independent of the parent
@4BeerLife
@4BeerLife Жыл бұрын
thx!
@GurovDmitriy
@GurovDmitriy 6 ай бұрын
components cannot be created inside components... unless it's a memo))))
@berbudy
@berbudy Жыл бұрын
Wow just yesterday I try to understand fiber tree data structure by asking chatgpt and today I found this video that explain it clearly better than chatgpt, thank you for creating this video 🫡
Fantastic closures and how to find them in React
19:04
Developer Way
Рет қаралды 12 М.
Cheerleader Transformation That Left Everyone Speechless! #shorts
00:27
Fabiosa Best Lifehacks
Рет қаралды 16 МЛН
"Latest Freepik updates and pro AI tools for creating images, videos, and audio seamlessly."
16:31
The mystery of React key: how to write performant lists
13:22
Developer Way
Рет қаралды 6 М.
React Reconciliation
11:53
АйТи Синяк
Рет қаралды 95 М.
Real 10x Programmers Are SLOW To Write Code
14:51
Thriving Technologist
Рет қаралды 69 М.
Why React components re-render?
13:30
Developer Way
Рет қаралды 14 М.
React Fiber Reconciliation: How it Works (Part 1)
13:43
Tejas Kumar
Рет қаралды 12 М.
Understanding React's UI Rendering Process
29:07
CrossComm, Inc.
Рет қаралды 221 М.
Refs in React: from access to DOM to imperative API
12:53
Developer Way
Рет қаралды 4,8 М.