Understanding React's UI Rendering Process

  Рет қаралды 203,195

CrossComm, Inc.

CrossComm, Inc.

Күн бұрын

This talk by Anthony Garritano (Senior Software Engineer at CrossComm) examines how React implements a Virtual DOM to quickly render changes to the user interface. By the end of this talk the audience will know the basics of UI rendering with JavaScript through a Virtual DOM, understand React’s Reconciliation (the process of determining which Virtual DOM nodes should be turned into real DOM nodes) and have more confidence about the frontend technology decisions they make in their roles.

Пікірлер: 122
@cloudkungfu
@cloudkungfu 3 жыл бұрын
So happy that the examples are of functional components
@anandyadav_
@anandyadav_ 2 жыл бұрын
😂😂
@DEVDerr
@DEVDerr 2 жыл бұрын
Does it really matter tho?
@VividElites
@VividElites 2 жыл бұрын
@@DEVDerr Yes, there's no need for the extra syntax in class components, just distracting to the eyes from the topic at hand
@kennyngo8706
@kennyngo8706 2 жыл бұрын
@@DEVDerr Yeah, lifecycle methods vs hooks
@ninadsonawane1970
@ninadsonawane1970 2 жыл бұрын
yeahh huge relief. this this this fucking "this" scares me
@anapartybharath33
@anapartybharath33 3 жыл бұрын
Except the little audio problem. Overall great talk !
@wealthglitch
@wealthglitch Жыл бұрын
In my opinion, every React Developer should watch this. Very insightful, good job!
@samatzhetibaev8045
@samatzhetibaev8045 2 жыл бұрын
1:32 HTML & the DOM 3:54 Components and elements 11:52 Shadow DOM? 12:10 Reconciliation 23:25 Rendering 25:37 React Fiber 28:05 Conclusion
@edwinsandoval4563
@edwinsandoval4563 2 жыл бұрын
Thanks for sharing this presentation, great work !
@sajadtorkamani9399
@sajadtorkamani9399 2 жыл бұрын
Awesome talk. This helped me a ton. Thank you!
@PlamenTsilkov
@PlamenTsilkov 2 жыл бұрын
Great stuff. Really liked the keys explanation.
@jayribagchi2182
@jayribagchi2182 9 ай бұрын
Such an awesome talk with so much of clarity! The technical nuances are hard to make anyone understand, and he did the job pretty pretty well. Thankyou for putting this out, for free. So so much to learn!🎉🎉
@nikosspiropoulos8417
@nikosspiropoulos8417 Жыл бұрын
This is awesome, thanks for the detailed explanation
@pptxn-tv4419
@pptxn-tv4419 Жыл бұрын
TNice tutorials is one of the best intro soft softs I've ever seen. The entire basic worksoftow with no B.S.!
@shalin1
@shalin1 2 ай бұрын
Anthony is genius. The talk was super helpful and informative as well, Thank you very much guys.
@daniel7007
@daniel7007 Жыл бұрын
The best explanation of React ever!🔥🔥🔥🔥
@Hamzakhan-kx2ql
@Hamzakhan-kx2ql 2 жыл бұрын
thank you for sharing this presentation.
@Lahiru_Udana
@Lahiru_Udana 2 жыл бұрын
Great talk. Thanks
@anujjosh
@anujjosh 2 жыл бұрын
Great talk Jake Peralta!
@fasolplanetarium
@fasolplanetarium 2 жыл бұрын
Excellent talk, thanks!
@hassaannoor
@hassaannoor 2 жыл бұрын
You cleared a lot of concepts that just didn't make sense to me earlier.
@abrorxalilov2550
@abrorxalilov2550 2 жыл бұрын
Great talk, thanks a lot!
@edchelstephens
@edchelstephens 2 жыл бұрын
Wow! Great talk!
@Gruby7C1h
@Gruby7C1h 2 жыл бұрын
Really good talk!
@soy1700
@soy1700 2 жыл бұрын
Great talk. One thing worth noting, when React is diffing list items that came from a .map(), inserting a function call like uuid() into the key property will cause rerenders everytime. The UUID will change between renders because the key is actually calling UUID every time the component's code is executed. You can fix this by instead generating a UUID for the object and persisting it in some state, much like you would with an ID property - which shouldn't be a big deal if you're generating the object from the frontend anyways. Just make sure not to call the function in place of the key -> add a persistent value instead.
@sahilkazi4518
@sahilkazi4518 2 жыл бұрын
didn't get you, can you please ellaborate or point to a resource that does?
@soy1700
@soy1700 2 жыл бұрын
@@sahilkazi4518 tl;dr - avoid ever doing something like key={uuid4()} in a React list item. The key will change on every rerender of the component, because uuid4() will be called every time. When uuid4() is called upon a rerender, the list item that you set key={uuid4()} will also be rerendered, defeating the purpose of having set a key in the first place. The purpose of keys is to improve efficiency by letting React know that your list item hasn't changed, and thus doesn't need to be rerendered. If your key is a random non-persistent value every time React looks at it, it will be rerendered every single time. This is why people often use an ID property to define a key. ID's are persistent (they will be stored in an array in state somewhere) and they are unique. You need both persistence and uniqueness for a key to work as intended
@kevinbatdorf
@kevinbatdorf 2 жыл бұрын
More important to not use the index from a map function as the key
@germanaquila2666
@germanaquila2666 2 жыл бұрын
@@kevinbatdorf why not?
@kevinbatdorf
@kevinbatdorf 2 жыл бұрын
@@germanaquila2666 Because if the order of the objects change and the key is the index, React wont render it properly.
@ulviugur3605
@ulviugur3605 2 жыл бұрын
Thanks a lot !!, good attempt to de-mistify the topic ! I would have preferred to see a visual summary of what happens when X changes, X being DomElement Type, keys, primitives or object values from lement props, etc. Also liking them with hooks would have been "future-proof" :)
@iedi3
@iedi3 2 ай бұрын
awesome, i need more videos like this, deep stuff
@phoe7ix
@phoe7ix 9 ай бұрын
Awesome stuff, thanks!
@sandipkundu5887
@sandipkundu5887 2 жыл бұрын
As I am really new to react doing my hands-on this talk gave me a lot of confidence and knowledge as well as interest
@vijayroy93
@vijayroy93 2 жыл бұрын
let's learn it together it's good to have react mate 👍
@haseebali3810
@haseebali3810 3 жыл бұрын
Informative ⚔️
@rahulshekhar8498
@rahulshekhar8498 Жыл бұрын
I been through loads of video's about soft . but you are the best thanks for your video's.
@Vilhena6969
@Vilhena6969 3 жыл бұрын
Great talk :)
@sensingturtle
@sensingturtle 2 жыл бұрын
Super helpful!
@HimanshuKumar-xz5tk
@HimanshuKumar-xz5tk 2 жыл бұрын
This is gold. I wish he talked how diffing algorithm actually worked.
@andriiv7033
@andriiv7033 Жыл бұрын
This is pretty good for beginners. It’d be good to know how Fiber works in details, for instance.
@sidharthvyas5883
@sidharthvyas5883 Ай бұрын
Awesome talk, thnx alot
@kikevanegazz325
@kikevanegazz325 2 жыл бұрын
GREAT TALK!
@leonardoweber5096
@leonardoweber5096 Жыл бұрын
great lecture!
@mkkosmkkos7389
@mkkosmkkos7389 2 жыл бұрын
true hidden gem
@thecoder1631
@thecoder1631 9 ай бұрын
fiber talk, that's actually react Suspense now and we can actually do that. so cool.
@maksympinchuk9057
@maksympinchuk9057 3 жыл бұрын
Thank you, guys, thumb up from me!
@trueuchiha2042
@trueuchiha2042 2 жыл бұрын
well explained!
@pq6688
@pq6688 2 жыл бұрын
Great talk
@ChrisAthanas
@ChrisAthanas 2 жыл бұрын
Very useful talk
@funkybuddha1598
@funkybuddha1598 2 жыл бұрын
key={index} root of all my problems!!!! Thank you!
@LorandPalfalvi
@LorandPalfalvi 2 жыл бұрын
Amazing talk! Thank you allot! But at some point I thought I forgot playback speed at 1.25
@paxdriver
@paxdriver 2 жыл бұрын
This dude should have done way more talks by now. On Symbols, on "this" binding, and service workers and stuff.
@sunnypaul299
@sunnypaul299 2 жыл бұрын
great talk
@abhinavkant
@abhinavkant 10 ай бұрын
Need more videos of him
@akash.deblanq
@akash.deblanq 10 ай бұрын
everyone in the audience is like the same person, same dress, no expression, same messy hair 🥲
@sabuein
@sabuein Жыл бұрын
Thank you.
@enfieldli9296
@enfieldli9296 2 жыл бұрын
A good source material help me understand the component mounting and useEffect thing
@alexxu7542
@alexxu7542 2 жыл бұрын
interesting video!
@gershomnsengiyumva6572
@gershomnsengiyumva6572 Жыл бұрын
wonderful
@MichaelCampbell01
@MichaelCampbell01 2 жыл бұрын
Good preso; explained a lot. Is it safe to say in functional components, when a state changes via useState, the entire function (so, the entire component) gets re-run? If so, if I have a "const thing = this_depends_on_state()", thing will get recalculated when the state changes?
@davidchang3782
@davidchang3782 2 жыл бұрын
Yes! Everything would get re calculated again
@HorizonHuntxr
@HorizonHuntxr 2 жыл бұрын
Yes but only the part of the component that depends on that piece of state would get re-rendered.
@o.h.n.o.
@o.h.n.o. Жыл бұрын
Can anyone tell me if React still has this $$typeof: Symbol(react.element) for every element? I tried logging a react element (sandbox) but did not find this. I found _owner and _store instead
@vishnuojha298
@vishnuojha298 Жыл бұрын
Learn lot from the video...
@rickharold7884
@rickharold7884 2 жыл бұрын
Cool
@taofeng5769
@taofeng5769 9 ай бұрын
what are immersive apps?
@cloudkungfu
@cloudkungfu 3 жыл бұрын
Mustache moste powerful!
@JakeJJKs
@JakeJJKs 2 жыл бұрын
great talk, despite the wrong prioritization of star trek vs star wars vs space balls. lol, jk. I got a lot out of it! :)
@AjayKumar-id7mb
@AjayKumar-id7mb Жыл бұрын
I am also facing the same problem
@adventurer_v
@adventurer_v 2 жыл бұрын
Title: "understanding react rendering". Min 26, "I actually don't know how react rendering really works with Dom" 😁
@adventurer_v
@adventurer_v 2 жыл бұрын
But it's though fiber!
@ObinnaWGMI
@ObinnaWGMI 2 жыл бұрын
No lie I clicked on this thinking it was an iDubbz video
@pratikkumar939
@pratikkumar939 2 жыл бұрын
Did not get much info about how React fiber works...
@smrpkrl
@smrpkrl 8 ай бұрын
6:07
@siddharthpatel6009
@siddharthpatel6009 2 жыл бұрын
As far as i know only class components have instances.
@danieltkach2330
@danieltkach2330 2 жыл бұрын
I think so, because technically they are objects. But functional components are functions. I will get React some day ha!
@prakhartiwari7537
@prakhartiwari7537 Жыл бұрын
problems and than volu automate the boi cuz I didn’t know how to sidechain. My one buddy produces riddim and he legit saw my daw
@sundar_panda
@sundar_panda 2 жыл бұрын
I did not know John Abraham knows reactjs
@gonzalowilliams
@gonzalowilliams 2 жыл бұрын
you talk at the edge of youtube normal speed
@cya3mdirl158
@cya3mdirl158 2 жыл бұрын
Backend systems are more complicated and interesting. This talk is about Virtual 🏡 which is also interesting and also very simple concept.
@SarbjeetJohal
@SarbjeetJohal 2 жыл бұрын
He knows what he is talking about but it assumes some dev experience to follow.
@heiheichan638
@heiheichan638 2 жыл бұрын
He kinda looks like idubbbz
@blackdeckbox
@blackdeckbox 3 жыл бұрын
Idubbbz? Did you change your career?
@anirbanmaji80
@anirbanmaji80 3 жыл бұрын
Why is the speaker using so much cuss words? 😁 Just kidding. Great talk.
@atsourno
@atsourno 2 жыл бұрын
Thumbs up if you were using key = { index } the wrong way.
@thatsalot3577
@thatsalot3577 2 жыл бұрын
IDK why but the video looks like it's from 2011.
@equallyavant
@equallyavant 2 жыл бұрын
Sponsored by plaid shirts
@the_BetaDev
@the_BetaDev 3 жыл бұрын
Why the children do not have $$typeof property?
@Jack32421
@Jack32421 3 жыл бұрын
he did around minute 8
@thomasstambaugh5181
@thomasstambaugh5181 2 жыл бұрын
@@Jack32421 I have the same question. I reviewed the talk from 7:45 to 8:30, and didn't see or hear the answer. If you're around, could you perhaps offer a brief answer in plain text?
@Jack32421
@Jack32421 2 жыл бұрын
@@thomasstambaugh5181 i didnt point it out but the component is a react element while the h1 is an html element. i guess u can proof it when creating a component inside a component so lets say, reactTableComponent -> contains reactTableRowComponent -> contains labels, and inspect it. also he said its for react components to add a security feature like an uuid. hope that helps
@thomasstambaugh5181
@thomasstambaugh5181 2 жыл бұрын
@@Jack32421 : Got it, thanks.
@chillimilli5116
@chillimilli5116 2 жыл бұрын
@@Jack32421 thanks a lot mate. Cheers.
@RogerFederer777
@RogerFederer777 3 жыл бұрын
I am surprised how much he swears given that it's a conference talk...
@wonton1019
@wonton1019 3 жыл бұрын
I didn’t notice
@lifeinthebigcity37
@lifeinthebigcity37 2 жыл бұрын
thats why the audio was muted at some points.
@olezhonnv3215
@olezhonnv3215 2 жыл бұрын
Ok, so it is expensive to manipulate the DOM. But React must manipulate the DOM to render a component. So, without react, you manipulate the DOM. And, using react, you indirectly manipulate the DOM. But react adds its virtual dom and reconciliation in addition to actual DOM manipulations. Where is the performance? DOM MUST be manipulated, with react or without react.
@type3gaming851
@type3gaming851 2 жыл бұрын
With the help of virtual dom it knows what to manipulate and what doesn't need to change. Without react even for a small change the DOM is getting rendered from scratch.
@type3gaming851
@type3gaming851 Жыл бұрын
@@andTutin Yes you are right, it's been a long time since I've made that comment lol. Now i know.
@type3gaming851
@type3gaming851 Жыл бұрын
@@andTutin prove what
@type3gaming851
@type3gaming851 Жыл бұрын
@@andTutin Yeah bruh that's not happening, earlier sometime told me that so i believed. Now i know i was wrong. You can chill.
@PavanMuppala
@PavanMuppala 2 жыл бұрын
this looks like flutter
@narayanchoudhary6950
@narayanchoudhary6950 2 жыл бұрын
No flutter looks like this
@spinningaround
@spinningaround Жыл бұрын
Unnecessary complication. Browsers need new language!
@zahar1381
@zahar1381 Жыл бұрын
владилен?
@THEkarankaira
@THEkarankaira 2 жыл бұрын
popatlal?
@rustalisin8950
@rustalisin8950 2 жыл бұрын
all good, but when talking about key & ref string option, why not say why null is used for beginners Assume nothing, it costs u 5 sec , how do u use it with null ? thats what views need .. also to "access a 3rd party library writing attributes to a DOM node" WTF how about this is where u put a hook or address reference to access a 3rd party lib.. why do good scripters confuse the fine detail ? "we have a h1 , an ID as title, & we return it. in teaching simple component, a new user asks why do u return it before calling it ( ) the 1st line = ( ) => needs 5 sec clarity, as when a component runs State / Procs or Props.. a constant living organism? scary (explain how that component comes to life , How hard is it
@frostbite8238
@frostbite8238 7 ай бұрын
Audio is breaking for this video.
@mrCetus
@mrCetus 2 жыл бұрын
Except the little audio problem. Overall great talk !
@hhlohmann3881
@hhlohmann3881 3 жыл бұрын
If you usually change content by innerHTML, then you SHOULD switch at least to a library doing stuff for you
@hhlohmann3881
@hhlohmann3881 3 жыл бұрын
If you are unsure how to use a library, you are one for a framework
@hhlohmann3881
@hhlohmann3881 3 жыл бұрын
You might or need not to be the one to think about "Is it a library or a framework?"
Что будет с кроссовком?
00:35
Аришнев
Рет қаралды 2,5 МЛН
ФОКУС С ЧИПСАМИ (секрет)
00:44
Masomka
Рет қаралды 4,6 МЛН
Has Generative AI Already Peaked? - Computerphile
12:48
Computerphile
Рет қаралды 126 М.
Every React Concept Explained in 12 Minutes
11:53
Code Bootcamp
Рет қаралды 290 М.
React Fiber Reconciliation: How it Works (Part 1)
13:43
Tejas Kumar
Рет қаралды 8 М.
Kruno: How browsers work | JSUnconf 2017
20:06
JSConf
Рет қаралды 78 М.
How Does React Actually Work? React.js Deep Dive #1
15:25
Philip Fabianek
Рет қаралды 129 М.
Lin Clark - A Cartoon Intro to Fiber - React Conf 2017
31:48
Meta Developers
Рет қаралды 195 М.
React Crash Course 2024
3:04:36
Traversy Media
Рет қаралды 205 М.
Is John Carmack Right about UI?!
1:52:02
Tsoding Daily
Рет қаралды 7 М.
Что будет с кроссовком?
00:35
Аришнев
Рет қаралды 2,5 МЛН