首页 文章

Redux中的组件更新

提问于
浏览
0

所以在简单的反应中,setState触发render方法 . 现在,关于Redux,让我说我发动了一个动作,从reducer返回的状态是全新的,所以听起来每个组件都应该更新,虽然我知道这不是真的,因为当我调试我的应用程序时我可以看到它,加上它听起来像糟糕的表现 . 所以我的问题是,redux是否在每个组件中查看它需要哪个状态切片?在mapStateToProps?一般来说Redux如何决定何时调用render方法?

我知道Redux有优化...谢谢...

1 回答

  • 1

    Redux商店提供 subscribe() 方法 . 当您使用 connect() 时,它会生成包装器组件,这些组件在创建时会自动订阅该存储 . 每个连接的组件都是一个单独的用户 .

    调度操作时,存储会运行所有订阅回调 . 然后包装器组件调用 store.getState() . 作为第一次检查,如果根状态对象与前一个对象相同,则组件将停在那里 . (这是减速器中状态直接变化不好的一个原因 . )

    下一步是调用提供的 mapState 函数并传入当前状态对象 . 然后,包装器组件使用浅等式比较检查将从 mapState 返回的对象的内容与上次返回的对象的内容进行比较 . 如果基于该浅层检查更改了任何内容,则组件知道它需要使用新数据重新呈现"real"组件 . (同样,"shallow"检查是突变不好的另一个原因 . )

相关问题