SMOOSHCAST: React Fiber Deep Dive with Dan Abramov

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

КОМЕНТАРІ • 59

  • @MrAaronBlues
    @MrAaronBlues 3 роки тому +38

    "Oh, React is not defined, [...] it's normal cause this file is React." Love it

  • @insaneviruss
    @insaneviruss 4 роки тому +9

    Thanks Dan and team! Please keep showing more of such source code reviews. Teaches a lot about how to think like makers of library and use it like it was intended to :)

  • @uqmessias
    @uqmessias Рік тому +1

    Such an amazing video! Thank you all for recording this \o/

  • @nikilk
    @nikilk Рік тому +3

    Had a hearty laugh, and a good deep dive into the React reconciler. Dan will be missed.

  • @Василий-ф4е
    @Василий-ф4е 4 роки тому +5

    Какая радость увидеть своего внука !

  • @seanbruceful
    @seanbruceful 5 років тому +29

    I have to say that I always enjoy Dan's talk.

    • @natural-song
      @natural-song 5 років тому +1

      Yeah, Dan‘s so Humble!

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

      Same.

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

      Can you understand what is he talking about though?

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

    this is an absolute gem of a video. thank you for making it💙

  • @shubhdeepchhabra3250
    @shubhdeepchhabra3250 8 місяців тому +1

    55:32 why connection is not made in begin phase?

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

    Such a great review of the React Fiber internals ! I love this video !

  • @seanbruceful
    @seanbruceful 4 роки тому +33

    I've watched this video three times, and It's still very difficult for me to walk through the react source code now. but each time I try I feel better in understanding it. and I won't give up.

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

    So I've been putting countless hours into react and have heard the name Dan abramov a million times, yet I've never watched a video from him. Seems like a really nice guy, glad one of the top people at react seeming super nice :)

  • @marvinfrachet7607
    @marvinfrachet7607 5 років тому +5

    This is amazing. I like this kind of videos. Thanks folks.
    I'm having a question just to make sure I've got the points.
    - The Begin work is the descending tree traversal
    - The Complete work is the ascending tree traversal
    But when / how the commit phase is handled? At each node leaving the Complete work? Or do you traverse the tree a new time (and reconcile only on the tagged node) ?

  • @CognitiveSurge
    @CognitiveSurge 5 років тому +4

    Great video, would love to see even more React Fiber related videos, that was so interesting! Twitter being SMOOSHED was great 😂

  • @miraage
    @miraage 5 років тому +2

    The best explanation of React Fiber architecture I've ever seen

  • @juangwiantoro7607
    @juangwiantoro7607 5 років тому +1

    Awesome video! learn a lot by watching Dan walkthrough the codebase and implementing ReactSmoosh ;) ! Looking forward to watching another episode!

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

    3:27 "I'm just going to share my screen... can you see anything" - 2021 in a nutshell hahaha

  • @georgeandersen6182
    @georgeandersen6182 5 років тому

    38:18 Yes I have a question! In concurrent mode, if there are only two trees, can you stop the second change you're trying to do? (e.g. the like in the previous illustration) or would that need a third tree?
    I don't think this question makes a lot of sense, but how does concurrent mode work in terms of: Can a frame be skipped because it leaves an old unfinished tree behind when a new render completes that replaces it? (like in the iceland vid the debouncing demo I guess)

  • @EranShapira
    @EranShapira 5 років тому

    Usually I hate watching videos on coding, I rather read, but this was extraordinary, awesome video, great walkthrough on react fiber. amazing.

  • @cintron3d
    @cintron3d 5 років тому +3

    But, what if the div has a className, hidden, aria-tag, etc...? Implementation should also check for props other than children to determine if it's a waisted div.
    What if it has more than one child, that would make it a container div, and so those should be kept too.
    I think the second implementation is still very much a hack and not yet production ready. But this is a good deep dive into react internals, thanks for that.

    • @7833497
      @7833497 5 років тому

      It already checks for other props. React.createElement function's 2nd argument is props, and any props there when changed, trigger fiber update. Children are the easiest way to show what happens behind the scenes.
      If the div is a container, then it is obviously kept (unless it is not affected by styles - you can see that yourself with React DevTools).
      I wouldn't call second implementation a hack at all, seeing how flexible it is. (doesn't update user's screen mid-building, allows for interruption)

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

    The way you smooshed the Twitter !!

  • @AleksandarGvozden
    @AleksandarGvozden 5 років тому +1

    amazing stuff
    thanks @Dan

  • @nromancarcamo
    @nromancarcamo 5 років тому +3

    I’m doing some libraries but I haven’t make them public yet cause I need to finish them due to also they are being tested internally in projects that are gonna be released too, but one thing to point out is the way Dan explained the architecture of how some things of react internally works and I feel identified, I have some similar data strctures and algorithms applied without even know that react does some things almost same, that for me is really awesome 👏 , I feel like I haven’t wasted my time for getting good things 😏
    Thanks for this wonderful video, Dan I recognize your hard working!, i love your work, keep it up!.

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

    This was so enlightening. Learnt a ton!

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

    This is really a cool. Thanks Dan

  • @wisemikky
    @wisemikky 5 років тому

    This is so really cool stuff. Just started using react and I knew I was gonna have problems with the numerous divs.

  • @张志明-t3y
    @张志明-t3y 5 років тому +1

    Awesome video!

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

    Editor theme?

  • @rabbitize
    @rabbitize 5 років тому +15

    React will be around in the next 10 years!

  • @rikpatel
    @rikpatel 5 років тому +1

    Great stuff, gives little insight on how React works internally.

  • @phryneas
    @phryneas 5 років тому

    This is fantastic. Thank you!

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

    I enjoy Dan's talk also. Great and comfortable explanation!

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

    this is really amazing!

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

    awesome video, but it was kind of scary to see Dan adding such complex boolean operators to decide whether to render 'div" or not in SmooshMode. I am pretty sure that was the main reason that part didn't work. a) they are not readable at all due to lot of negative logic b) they don't work and you can't fix them even though you added them 2 minutes ago.

  • @rocketsketch
    @rocketsketch 5 років тому

    Great work. Thanks.

  • @natural-song
    @natural-song 5 років тому +1

    Dan‘s phone is one Nokia, cool!

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

    Insane content, want to commit to React so badly but the source is so intimidating, but it i am slowly getting it, it is quite simple in fact

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

    To people watching the first hour lost, stick around till the end it’s pretty wild.

  • @jingge3083
    @jingge3083 5 років тому +1

    Awesome, Thanks

    • @牧云云
      @牧云云 5 років тому

      Caught on the spot.

  • @ChuongHuynhQN
    @ChuongHuynhQN 5 років тому

    Look at the clock on the wall. It must be from previous century!

  • @pranshuchittora5444
    @pranshuchittora5444 Рік тому +1

    Still relevant in 2023 :)

  • @tiancihe795
    @tiancihe795 5 років тому +5

    woah, that video chat is really awkward

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

    Setup tips for anyone coming here in the future:
    The boys are on commit 4d307de458dfdf25e704cb2ca20b0578bba8998c. It also requires an older version of node. I chose Node 8, it worked out fine, so I highly suggest using nvm. The command I guess would be:
    git clone git@github.com:facebook/react.git
    git checkout 4d307de
    git checkout -b smoosh
    echo "8" > .nvmrc
    nvm install 8
    nvm use
    npm install -g yarn
    yarn

  • @singhi89
    @singhi89 5 років тому

    Really helpful.

  • @KostyaKurilov
    @KostyaKurilov 5 років тому

    Great podcast, but camera shaking crazily

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

    Damn such a good video but the video quality is like it was filmed on an android device

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

    Dan is always the best😘

  • @codeschool3964
    @codeschool3964 Місяць тому

    Thanks for making this tutorial. I'm trying to follow along. Some of the methods used here have been deprecated now. I managed to use the new methods. But the thing is my changes to the react source code are not reflected in the tests like it's happening in the tutorial. I tried running yarn build and then running tests. Cleared jest cache as well. Nothing worked.
    I'm trying to change add type lol to the div.
    ua-cam.com/video/aS41Y_eyNrU/v-deo.htmlsi=BJfuNUDv5_ng44wO&t=825

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

    why I first see this in 2021...sad

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

    ❤❤😂🎉

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

    When the react god is coding, everyone just shuts up and soak
    the knowledge haha

  • @KostiaBazrov
    @KostiaBazrov 5 років тому +4

    Vue is better