react-redux provider组件
在src/index.js中使用
provider组件的作用
provider包裹在根组件外层,使所有的子组件都可以拿到state。
它接受store作为props,然后通过context往下传,这样react中任何组件都可以通过context获取store。
provider组件概念图
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import { BrowserRouter } from 'react-router-dom'
import { Provider } from 'react-redux'
import store from './store'
ReactDOM.render(
<BrowserRouter>
<Provider store = {store}>
<App />
</Provider>
</BrowserRouter>,
document.getElementById('root')
);
原理
React组件的context属性
getChildContext,保存了全局唯一的store,类似于全局变量,子组件后续可以通过this.context.store来访问。
通过context传递属性的方式可以大量减少通过props 逐层传递属性的方式,可以减少组件之间的直接依赖关系。