react学习
文章平均质量分 83
m0_60360320
这个作者很懒,什么都没留下…
展开
-
浅谈react——状态更新之后发生了什么
学习react底层的过程,和学习其他原理一样,抓住一些关健的点,也就是关键的函数(往往代表了一些阶段),可以对源码的把握以及 图像化的流程更加清晰和易懂。 我们知道facebook团队在react16之后就对react底层有一些重大的重构,一句大白话来解释就是,让react可以实现异步可中断的更新。 至于怎么实现的,是react引入了Scheduler调度器,会分配给js线程一个初始的执行时间,源码里面yieldInterval=5ms,如果预留的时间不够浏览器渲染的话,那么react就会将控制权.原创 2021-09-11 22:08:58 · 448 阅读 · 0 评论 -
浅谈从源码里面谈react的diff算法
react和vue作为两个目前影响力最大的两套框架,在性能提升方面,都采用了虚拟dom这种理念,在内存中运行,而不会马上改变dom结构。再一个就是使用了diff算法,但是直接diff两棵树会有问题,考虑到一个树上的节点可以复用,以及可以增加或者删除,会导致时间复杂度过大O(n*n*n) 怎么解决? react和vue都是默认同级比较的,这样就只需要考虑新增以及删除节点的操作复杂度O(n),极大的提高了效率。 当然,vue和react的具体实现还是不同的,vue在diff的时候调用patch函数原创 2021-08-14 14:12:03 · 83 阅读 · 0 评论 -
浅谈React里面的Fiber
自从react从15版更新到16版后,虽然使用上差别不会很大也提供了一定的兼容性,但是react的底层架构确有了很大的变化。React Fiber横空出世... React15最大的问题就是Reconciler阶段产生产生虚拟DOM是通过深度优先递归的,并且中途不可间断。所以假如虚拟DOM很深的话,由于JS线程和浏览器GUI线程是互斥的,处理js的时间过长,会导致浏览器刷新的时候掉帧,造成卡顿。而React16则实现了异步的可中断的更新。 那么Fiber到底是个啥?其实Fiber怎么说都可以...Fib原创 2021-08-06 22:27:30 · 611 阅读 · 0 评论