provider组件概念图:

15 react-redux provider组件

 

 

provider组件的作用:

  • provider包裹在根组件外层,使所有的子组件都可以拿到state.
 
  • 它接受store作为props,然后通过context往下传,这样react中任何组件都可以通过context获取store。

provider组件的原理:

export default class Provider extends Component {
  getChildContext() {
    return { store: this.store }
  }

  constructor(props, context) {
    super(props, context)
    this.store = props.store
  }

  render() {
    return Children.only(this.props.children)
  }
}

Provider.propTypes = {
  store: storeShape.isRequired,
  children: PropTypes.element.isRequired
}

Provider.childContextTypes = {
  store: storeShape.isRequired
}

关键点在:getChildContext,保存了全局唯一的store,类似于全局变量,子组件后续可以通过this.context.store来访问。

通过context传递属性的方式可以大量减少通过props 逐层传递属性的方式,可以减少组件之间的直接依赖关系。



相关文章:

  • 2021-08-10
  • 2019-07-11
  • 2021-06-03
  • 2021-10-20
  • 2022-12-23
  • 2021-04-24
  • 2022-01-19
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-30
  • 2022-12-23
  • 2021-06-04
相关资源
相似解决方案