我试图通过React library了解React,但无法理解传递给Component的context
和updater
是什么。
以下是库中的代码。
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;
}
这些事情的目的是什么?
答案 0 :(得分:14)
context
的目的是让开发者将props
直接传递给components
,而不是通过props
/ children
的{{1}} (这可能变得非常复杂/混乱)。
在某些情况下,您希望通过组件树传递数据,而不必在每个级别手动传递道具。您可以使用功能强大的“上下文”API直接在React中执行此操作。
parents
是一个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')
分别使用setState()
和forceUpdate()
触发。