18

我试图通过React 库来理解 React ,但无法理解传递给组件的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;
}

这些东西的目的是什么?

4

1 回答 1

17

语境

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

在某些情况下,您希望通过组件树传递数据,而不必在每个级别手动传递道具。您可以使用强大的“上下文”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()

于 2018-01-08T01:47:47.773 回答