首页 > 解决方案 > 为什么 React 不使用 promise.resolve 进行批量更新?

问题描述

目前,React 仅在由 React 本身调用的函数中批量更新。比如事件处理程序和生命周期。据我所知,React 只是简单地调用这些函数,就像它们被包裹在unstable_batchedUpdates.
让我们假设它类似于以下内容:

unstable_batchedUpdates(() => {
  instance.componentDidMount();
});

所以现在,我们必须在unstable_batchedUpdates.

我也知道在并发模式下,我们有这个updates train概念,我们将所有状态更新一起批处理。

但我有两个问题,
首先,这是如何update train工作的?什么机制决定哪些更新应该在火车上?仅仅是发生的时间吗?
其次,为什么它必须如此复杂?为什么我们不能做类似于 Vue 所做的事情并将所有setState调用包装在 nextTick 函数中?我知道这与我们在并发模式下的情况几乎相似,但是如果没有启用并发模式,我们现在添加它会遇到什么样的瓶颈和问题?

我在考虑饥饿问题。但我不确定。

提前致谢。

标签: javascriptreactjsvue.jsinternals

解决方案


推荐阅读