Redux存储从组件访问

时间:2017-07-15 18:10:01

标签: react-redux

我有一个使用redux的反应应用程序。我正在使用connect到mapStatetoProps和mapDispatchtoProps。一切正常,我可以调用动作并将它们传递给我的减速器,然后减速器设置状态。然后,我可以使用props访问该状态,因为我的应用程序包含在react的提供程序中。

我的问题是概念性的。

  1. 我可以在应用程序启动时自动填充商店,以便对props的调用访问最初加载的数据吗?
  2. 为什么动作会触发所有减速器功能?它不应该只触发与被调用动作相对应的减速器吗?
  3. 如果调用了一个特定的reducer,那么状态是否会发生变化,然后通过props可以对所有组件使用?

1 个答案:

答案 0 :(得分:0)

  1. 通常在reducer中指定初始状态,如此
  2. function reducer(state = initialState, action) { ... }
    

    如果您的初始状态是异步加载的,那么您还需要其他东西,可能会抛出微调器或推迟创建存储和渲染应用程序。

    1. 您只能订阅整个商店,而不能订阅州的各个部分。动作和减速器之间没有映射。这样做既有好处,也有缺点。好处是您只有1个订阅点,这大大提高了简单性。 connect将根据当前和之前的道具自动处理组件是否需要重新渲染和更新。缺点是速度不是很好,我甚至在过去做了一些基准测试,但它仍然可以接受。

    2. 只有在其状态的mapStateToProps发生更改时,组件才会更新。这减少了不必要的更新,因此,如果组件依赖于它们,则始终在mapStateToProps中提供状态的那些部分。