Skip to content

LPink777/Deep-understanding-of-react-redux

Repository files navigation

深入理解react-redux中的createstore, connect, provider, middleware的实现

createstore方法:

createStore函数接受另一个函数作为参数,返回新的生成的Store对象。

    import { createStore } from 'redux';
    const store = createStore(reducer);

connect()方法:

connect是react-redux提供的方法,用于生成容器组件。

    import { connect } from 'react-redux';
    const App = connect(mapStateToProps,mapDispatchToProps)(Component)

connect方法接受两个参数 mapStateToProps和mapDispatchToProps,分别将state和dispatch转换为props,返回值是一个函数,这个函数接受一个Componet为参数,props属性将添加到Component上,从而生成一个容器组件。

provider组件

provider主要功能是接受redux的store作为props,通过context对象传递给子孙组件上的connect

    ReactDom.render(
        <Provider store={store}>
            <APP/>
        </Provider>,
        document.getElementById('root')
    );

Provider初始化时,获取到props中的store对象,然后利用getChildContext方法,将外部的store对象放入context对象中,使它的children可以直接访问到context对象中的store。

middleware的实现

    import {createStore,applyMiddleware} from 'redux';
    let store = applyMiddleware(middleware)(createStore)(reducer);

middleware的实现主要是将原来store中的dispatch方法更新成自己想要的dispatch方法。具体实现方法可以参考redux-thunk,redux-promise,logger

About

深入理解react-redux系列

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published