React 库中的上下文和更新程序参数是什么?

IT技术 javascript reactjs react-component
2021-05-16 02:43:31

我试图通过React 库来理解 React ,但无法理解传递给 Component 的是什么contextupdater什么

以下是库中的代码。

function Component(props, context, updater) {
  this.props = props;
  this.context = context;
  this.refs = emptyObject;
  // We initialize the default updater but the real one gets injected by the
  // renderer.
  this.updater = updater || ReactNoopUpdateQueue;
}

这些东西的目的是什么?

1个回答

语境

Context引入是为了使开发人员能够直接将 props 传递给组件,而不是通过prop 钻孔的方式通过每个中间组件的属性(这可能会相对较快地变得过于繁琐)。

在某些情况下,您希望通过组件树传递数据,而不必在每个级别手动向下传递 props。您可以使用强大的“上下文”API 在 React 中直接执行此操作。


更新程序

updater是一个object含有methods用来更新DOM

这在行61和 中很明显79

// Line 61: Enqueue setState.
this.updater.enqueueSetState(this, partialState, callback, 'setState') 

// Line 79: Force Update.
this.updater.enqueueForceUpdate(this, callback, 'forceUpdate') 

这些methods分别使用setState()触发forceUpdate()