在 reconciler 现在的源码中,存在 old.js 和 new.js
这种情况产生的原因具体是什么?
为什么不进行合并,是因为调度器新旧实现不一致吗
看了下:https://github.com/facebook/r...
使用 new 还是 old 是通过 ReactFeatureFlags 中的 enableNewReconciler 控制的,默认是 false
怀疑新的 reconciler 还在开发阶段,没有 release、
具体新的 reconciler 的计划的信息有谁能够解答下吗
react 团队在实现Suspense 和 Concurrent。这两个依赖的时间过期模型遍布reconciler,所以很难通过几个tag来标记改动,并且不影响正常迭代。
所以,他们考虑多多种方式后,最后选择拷贝一份reconciler,然后在new和old同时保持迭代。
这样的方式看起来很丑,不过为了向前兼容、并且不影响之前和之后代码的稳定性,他们还是这么干了。
这里是reconciler迭代的情况。
下面是核心开发者Andrew Clark解释复制reconciler的原因。

核心开发者在twitter上面有react迭代一年和五年的回顾。里面可以了解他们迭代react和react新功能的心路历程。