「从0实现React18课程」学习心得

603 阅读1分钟

很荣幸能够遇到卡颂老师,庆幸生活在这个年代!

学习react源码不是一个容易的事情,如果没人指路大概率是不会去探究的。站在巨人的肩膀上事半功倍。 在学习这个系列课程的时候,我曾经一度放弃过,后来又重拾信心打算死磕到底。

通过课程的学习,我知道了,双缓存、dfs、位运算的权限管理、rollup等等,其中dfs多次使用,记忆犹新,后又去翻了翻的react的源码实现方式也是一样,可以说又多了一种深度优先遍历的套路(现在可以分分钟手写一次)

function dfs(root:FiberNode) {
// todo something
let node = root
    while(true) {
        if (node.child !== null) {
            node.child.return = node
            node = node.child
            continue
        }
    }
    if (node === root) return
    while(node.sibling === null) {
        if (node.return === null || node.return === root) return
        node = node.return
    }
    node.sibling.return = node.return
    node = node.slbing
}

总结:

有些东西看不懂,多看几次,多抄几次,多写几次,慢慢的就会理解了,把自己当成是机器学的过程; 在debug的过程是对代码的有一次深入理解的过程,需要珍惜。 今天终于学完第十一课,完成了合成事件,也完成额万里长征的第一步,以后还要再接再厉,希望之后能够用的tdd的方式,再重新撸一篇