javascript - 为什么 React 不使用 promise.resolve 进行批量更新?
问题描述
目前,React 仅在由 React 本身调用的函数中批量更新。比如事件处理程序和生命周期。据我所知,React 只是简单地调用这些函数,就像它们被包裹在unstable_batchedUpdates
.
让我们假设它类似于以下内容:
unstable_batchedUpdates(() => {
instance.componentDidMount();
});
所以现在,我们必须在unstable_batchedUpdates
.
我也知道在并发模式下,我们有这个updates train
概念,我们将所有状态更新一起批处理。
但我有两个问题,
首先,这是如何update train
工作的?什么机制决定哪些更新应该在火车上?仅仅是发生的时间吗?
其次,为什么它必须如此复杂?为什么我们不能做类似于 Vue 所做的事情并将所有setState
调用包装在 nextTick 函数中?我知道这与我们在并发模式下的情况几乎相似,但是如果没有启用并发模式,我们现在添加它会遇到什么样的瓶颈和问题?
我在考虑饥饿问题。但我不确定。
提前致谢。