赞了文章2021-05-31
React的更新任务主要是调用一个叫做workLoop的工作循环去构建workInProgress树,构建过程分为两个阶段:向下遍历和向上回溯,向下和向上的过程中会对途径的每个节点进行beginWork和completeWork。
赞了文章2021-05-30
每个fiber节点在更新时都会经历两个阶段:beginWork和completeWork。在Diff之后(详见深入理解React Diff原理),workInProgress节点就会进入complete阶段。这个时候拿到的workInProgress节点都是经过diff算法调和过的,也就意味着对于某个节点来说它fiber的形态已经...
赞了文章2021-04-07
Scheduler作为一个独立的包,可以独自承担起任务调度的职责,你只需要将任务和任务的优先级交给它,它就可以帮你管理任务,安排任务的执行。这就是React和Scheduler配合工作的模式。
发布了文章2019-07-31
1、概览 React实现自己封装了一套事件系统,基本原理为将所有的事件都代理到顶层元素上(如documen元素)上进行处理,带来的好处有: 抹平各平台的兼容性问题,其中不仅包括不同浏览器之间的差异,而且在RN上也能带来一致的开发体验。 更好的性能。事件代理是开发中常...
发布了文章2019-07-31
版本的格式 major.minor.patch 主版本号.次版本号.修补版本号 patch:修复bug,兼容老版本 minor:新增功能,兼容老版本 major:新的架构调整,不兼容老版本 依赖版本号规则 version 必须匹配某个版本 如:1.1.2,表示必须依赖1.1.2版 >version 必须大于某个版本 ...
发布了文章2017-10-29
webpack打包文件分析 现有如下三个文件 {代码...} {代码...} {代码...} 用webpack(版本3.6.0)打包后会生成manifest.js、app.js和0.js三个文件,其中manifest文件是入口文件。 其中定义了其他模块加载的相关方法,所以在加载其他模块之前,必须先加载manifest文件。...
发布了文章2017-08-12
由上图可以看出,波浪动画是由多个不同的‘波浪’组成,而每个波浪则是由近似正弦图形组成,最后的‘波动’效果,其实是静态的波浪循环向左运动产生的。
回答了问题2017-07-03
pushState设置的新URL可以与当前URL一模一样,这样也会把记录添加到栈中;而hash设置的新值必须与原来不一样才会触发记录添加到栈中
发布了文章2017-04-30
在昨天的一个移动端项目中引入fastclick后手动触发click事件失败,查看了文档也没有找到解决的办法,最后通过看fastclick源码才解决。如果不想看中间这么多文字,可以直接翻到最后看结论。
发布了文章2017-04-30
最终寻找一番后发现,原来这是IME问题,即中文输入时出现在输入框上方的带候选但还未选择的状态,其实这个在韩文日文等非字母文字中都会出现这个问题。那如何解决呢。
发布了文章2017-03-04
假设编号分别为a,b,c,d,e的五件物品,重量分别是2,2,6,5,4,价值分别是6,3,5,4,6,现在有一个承重为10的背包,如何装入物品具有最大价值?