zoukankan      html  css  js  c++  java
  • react 源码分析

    笔者最近开撸了react源码,自己为自己做个记录,同时希望能帮到其他同学。

    从个人的视角来看,react大致分为以下几个部分:

    1.    react其实没啥,都是透传到react-dom上,前提是我看的是react-dom, 不是react-native.

    2.    react-dom几大部分:

          1.    事件部分,针对原生事件做了封装、分类.

                a.  优先级分类: disCreateEvent,  UserBlockingEvent, ContinuousEvent。

                 b.  捕获,冒泡分类: trapCapturedEventtrapBubbledEvent

                 c.  代理事件(代理到document上),原生事件(无法代理到document上)

          2.    fiber架构,替代了以往的虚拟dom, 采用链表形式存储dom结构

                FiberRootNode,   FiberNode,  createFiberFrom.....

          3.    生命周期、钩子函数部分

                 useState, useReducer, useTransition.....

           4.    函数组件, class组件分别处理

    3.    Scheduler部分,用来做调度的, 就是网上经常看到的时间分片,优先级调度

           1.  和react-dom之间优先级形成一一对应, 并且能互相转换

               ImmediatePriority,  UserBlockingPriority,  NormalPriority,  LowPriority,  IdlePriority.

           2.  所谓时间切片,其实就是利用了异步操作原理。同步执行一些任务,时间片到期,就换异步执行。

  • 相关阅读:
    Spring Aware源码
    Spring 后置处理器源码
    Java8 Optional
    几种自定义Spring生命周期的初始化和销毁方法
    Spring通过@Autowired获取组件
    Spring的组件扫描注解
    Spring通过注解注入外部配置文件
    [CSP-S模拟测试92]题解
    [笔记乱写]关于数论函数(关于卷积的一些证明+杜教筛)
    我觉得我就是[数据删除]
  • 原文地址:https://www.cnblogs.com/jiajiaobj/p/13813829.html
Copyright © 2011-2022 走看看