• 2022面试相关 - react相关原理


    React相关的东西

    redux相关原理(TODO)
    Key值的具体作用

    hook 相关
    hook原理: https://juejin.cn/post/6944863057000529933
    在这里插入图片描述


    useState原理:
    useEffect原理:

    renderWitherHooks, 其中current, workInProgress(对应两个fiber 树)

    其中 workInProgress上存在memorizedState, 以链表的形式储存hook state
    WP的 updateQueue 上以环形链表保存

    React immuable 极可能复用数据

    文章链接:https://www.zybuluo.com/juanmao/note/1786313
    react技术理念: : https://react.iamkasong.com/preparation/idea.html#react%E7%90%86%E5%BF%B5

    react 相关原理: https://react.iamkasong.com/#%E7%AB%A0%E8%8A%82%E5%88%97%E8%A1%A8

    调试: https://mp.weixin.qq.com/s?__biz=MzkzMjIxNTcyMA==&mid=2247485234&idx=1&sn=5962c47e3513e9cc4f6d8872df50bdbb&source=41#wechat_redirect

    react 18新特性(并发渲染): https://juejin.cn/post/7139345030203834404

    在这里插入图片描述

    总结:

    1. react 16后为新架构, 增加 Scheduler 调度优先级(shouldYield判断是否可以执行)
    2. 由于Scheduler和Reconciler都是平台无关的, 都在内存机制中执行
    3. 其中reconciler 采用Fiber的架构 (这种在内存中构建并直接替换的技术叫双缓存树)
    4. Reconsiler 成为 render阶段, render 阶段称为 commit 阶段
    5. render 时, 经历 beginWork 与 compeleteWork
    6. 其中beginWork 会有diff算法比较 , 对于diff 算法比较 不做优化的遍历 O(n^3), 做了相关限制, 只做同级比较, 多节点的, 优先级更新操作高于 新增, 删除

    在这里插入图片描述

    diff 算法加上key之后, 减少一些不必要的操作, 之前同级比较, 如果存在key后, 可以根据key进来移动, 不需要重新创建,
    而 Vue中,使用的diff算法是双端对比算法, 还有一项就是使用tempelte静态编译, 可以直接忽略对比, 节省性能

    非hook相关:

  • 相关阅读:
    用 50 张游戏显卡检测癌症,这是“业余”程序员?
    期货开户客户经理一对一专业服务指导
    LeetCode简单题之温度转换
    论文学习——FALL-E:GAUDIO FOLEY SYNTHESIS SYSTEM
    docker-compose 搭建laravel环境
    【QT】day2
    在Espressif-IDE中使用Wokwi仿真ESP32
    嵌入式分享合集103
    shell脚本编程基础(上)
    (7)原型模式
  • 原文地址:https://blog.csdn.net/ZHXT__/article/details/127447162