在某些场景下,想在整个组件数中传递数据,但却不想手动地在每一层传递属性。可以直接在React中使用强大的“context”API解决上述问题。
一. 为什么不推荐使用上下文(Context)
如果希望使用应用程序更加稳定,就不要使用上下文(context)。这只是一个实验性的API,并且可能在未来的React版本中移除。
相比于Context,更提倡使用Redux或者使用props和state。
二. 在生命周期方法中引用Context:
如果 contextTypes
在组件中定义,下列的生命周期方法将接受一个额外的参数, context
对象:
constructor(props, context)
componentWillReceiveProps(nextProps, nextContext)
shouldComponentUpdate(nextProps, nextState, nextContext)
componentWillUpdate(nextProps, nextState, nextContext)
componentDidUpdate(prevProps, prevState, prevContext)
注意:
从 React 16 开始, componentDidUpdate 不再接收 prevContext 。
网友评论