请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

React Context 与 redux 在数据传递原理上的对比

老师这个context是不是就像redux的store呢?在在根组件上面传递值,下面的接收

正在回答

1回答

茵风泳月 2019-05-22 13:52:24

同学你好,其实redux并不负责向react传递数据,做这件事的是 react-redux

在 react-redux v6 版本中,其实它就是利用的 Context 的机制向 React 传递数据的,但是从 v7 开始,它换用了自己实现的订阅机制。相关信息可参见 https://github.com/reduxjs/react-redux/releases/tag/v7.0.1

In v6, we switched from individual components subscribing to the store, to having <Provider> subscribe and components read the store state from React's Context API. This worked, but unfortunately the Context API isn't as optimized for frequent updates as we'd hoped, and our usage patterns led to some folks reporting performance issues in some scenarios.

In v7, we've switched back to using direct subscriptions internally, which should improve performance considerably.

虽然从使用方法上很类似,但是现在它们是不同的原理。出于维护单一数据源和方便调试的目的,更建议用 connect 函数把数据注入到最顶层的组件上,然后往下传递。课程中也有讲,其实和谨慎使用 React Context 的思路是一样的。

祝您学习愉快!

0 回复 有任何疑惑可以回复我~
  • xjtumj #1
    更建议用 connect 函数把数据注入到最顶层的组件上,然后往下传递。
    
    对于这一点有些不同意见,如果项目比较复杂,不是demo级别的,更建议根据实际需要来进行connect
    
    相关讨论: https://github.com/reduxjs/redux/issues/419
    回复 有任何疑惑可以回复我~ 2019-06-03 00:04:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信