redux作为大型应用的状态管理工具,如果想配合react使用,需要借助react-redux。 redux主要完成两件事情:
- 通过
context
从root
向下传入store
,保证数据的单项流动的同时也方便了子组件从store
上获取数据 - 当应用状态发生变化,触发
subscribe
方法进行监听,实现相关逻辑
在
React 16.4.0
之前,React
官方是不推荐使用context
的,原因在于,当context
中的值刷新的时候,是从上到下刷新的,如果中间有组件的shouldComponentUpdate
返回了false
,这个组件下面的组件就收不到更新后的值;而React-Redux
实现了订阅发布的模式,保证使用了store
的组件在数据更新的时候可以得到通知。
在React 16.4.0
之后官方将createContext
暴露出来了,以上的问题不会出现,但是是不是意味着,可以用context
来替代redux
呢?理论上是可以的,但是并不推荐这样做,因为在redux
的发展中,其生态系统是非常繁荣的,用Redux
能避免重复造轮子的窘境。
引自:http://cuteshilina.com/2019/01/19/HowReactReduxWorks/#我们为什么需要react-redux