所以,我有两个组件,一个永远是另一个的直系后代。我想将道具从父组件传递给子组件。可能有多个子组件。有两种方法可以实现它。
React.Children.map(children, (child) =>
React.cloneElement(child, { someProp: 'value' })
)
或使用上下文 API
<Context.Provider value={{ someProp: 'value' }}>
{this.props.children}
</Context.Provider>
两者都会产生相同的 DOM 结构,但是,Context API 的代码会稍微多一些,并且会产生更多的 React 组件。
那么哪一个更注重性能和推荐。我找不到与此比较相关的任何讨论,因此在这里询问。