redux的subscribe()监听函数

我看网上有的代码 redux都没使用这个监听state变化的函数 直接利用reducer返回一个新的state 就组件就发生变化了

阅读 18.4k
3 个回答

在react里面用redux,一般我们会用到react-redux,其中包括Provider和connect接口

Provider接收redux的createStore()的结果,并且放到context里,让子组件可以通过context属性直接获取到这个
createStore的结果,这个createStore的结果是啥呢,如下几个函数:

return {
        //真正的返回,执行createStore其实返回的就是这些东东
        dispatch,       //触发action去执行reducer,更新state
        subscribe,     //订阅state改变,state改变时会执行subscribe的参数(自己定义的一个函数)
        getState,      //获取state树
        replaceReducer,       //替换reducer
 }

而connect,接收到mapStateToProps,会在内部subscribe全局state的改变,来判断props是否更改,如果需要更新,才触发更新。

react-redux就是不需要你自己去subscribe全局state的变化,以及去getState,还有判断组件是否需要更新。也是它存在的意义

mapStateToProps后若你的组件里有引用redux里的数据,会直接更新

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题