源码阅读
tangding12
这个作者很懒,什么都没留下…
展开
-
react源码阅读4 ExpirationTime
react更新中优先级依赖的标识ExpirationTime。阅读React包的源码版本为16.8.6。 这一章节,让我们抛弃掉react代码中的联系,单纯的来看ExpirationTime以及一些计算方式。 ExpirationTime是什么。 ExpirationTime是一个数字,你可以在react-reconciler包下的ReactFiberExpirationTime.js文件中找到它的定义。 export type ExpirationTime = number; Expiratio原创 2020-06-01 09:28:18 · 395 阅读 · 0 评论 -
react源码阅读3 update与updateQueue
react-dom后续updateContainer部分。阅读React包的源码版本为16.8.6。 在上一章节中我们看到了react-dom中render函数的逻辑是给传入的React组件创建了一个fiberRoot对象,用于标识它是整个应用的起点,上面拥有很多应用更新相关的表示符。然后创建对应的fiber给fiberRoot节点,fiber对象是每一个ReactElement都拥有的节点,...原创 2020-04-01 19:09:41 · 575 阅读 · 0 评论 -
不定期更新的源码阅读日常——lodash-3
今天我们来读lodash的节流防抖部分代码。 节流和防抖,是限制函数高频执行的一种手段。它们概念的区别在于,防抖合并多次函数执行为一次;节流是在一定的时间内函数只执行一次。具体的区别可以参考lodash官网推荐的这篇文章。 虽然明细了概念的区别,但是在lodash源码中,这两个方式其实是一个实现。lodash中_.debounce对应防抖,_.throttle则对应节流。我们先来看一...原创 2020-03-22 18:20:01 · 249 阅读 · 0 评论 -
react源码阅读-react-domRender
react-dom入口函数以及基本数据类型。阅读React包的源码版本为16.8.6。 在第一章节我们了解到,react包本质上是一个数据结构建立的抽象屏障,提供起来供react的其它包,诸如react-dom,react-native调用。在这一章中,进入react-dom的源码阅读。 根据package.json的main字段入口,我们可以找到react-dom的入口文件为src/...原创 2020-03-22 18:15:32 · 881 阅读 · 0 评论 -
不定期更新的源码阅读日常——lodash-2
今天我们来读lodash的深拷贝部分代码。 lodash的clone和cloneDeep两个方法分别对应浅拷贝和深拷贝。两个函数其实都依赖于baseClone方法,通过传入一个标识来进行深拷贝或者浅拷贝的区分,我们来简单看一下baseClone的入参。 /** Used to compose bitmasks for cloning. */ var CLONE_DEEP_FLAG = 1,...原创 2020-01-10 23:32:17 · 196 阅读 · 0 评论 -
react源码阅读-基础
react包基础概念以及React包的两个核心api阅读。阅读React包的源码版本为16.8.6。 基础概念 react包 react包的本质上是建立一个react相关数据类型的抽象屏障,它创建了一系列符合react渲染调度的数据结构,在各个react相关平台(dom,native,render)上进行渲染调度。 在阅读源码前,我一度认为诸如createElement和Compone...原创 2019-12-28 22:40:50 · 689 阅读 · 0 评论 -
不定期更新的源码阅读日常——lodash-1
不定期更新的源码阅读日常将不会采用逐行摘抄源码然后分析阅读的方式进行源码阅读,而是提炼分享源码中个人发人深省的部分进行摘录总结,知识补足。 不定期更新的源码阅读日常阅读的库都是模块零碎化或者小功能库。方便灵活,而且不需要连续阅读。 不定期更新的源码阅读日常将不定期更新。 欢迎大家关注我的个人博客,来查看我每周都会更新的一些文章。 今天我们来读lodash的Array部分。 数组length的边...原创 2019-12-01 22:34:05 · 191 阅读 · 0 评论