在 React Native 中使用 Redux 和本地状态来优化性能的最佳方式?
Best way to use Redux and local state in react native to optimize performance?
我正在使用 redux 来管理全局状态和 sagas,以便在 React 本机应用程序中调用异步服务器。
将组件连接到 redux 存储时,将对 redux 状态的调用拆分开来可以提高性能/最小化渲染吗?
例如。 redux store 中的一个大对象由许多小对象组成。
{bigObject : {small1, small2, small3....}}
在 class 的 mapStateToProps 中,分别调用所需的每个较小对象 (small1: state.bigObject.small1) 是更有效,还是只调用一次更好?更大的对象 ( big: state.bigObject)?
同样,创建 redux 状态的本地状态副本(例如 class 的 setState)是一种好习惯,还是直接在组件中调用 redux 状态(例如 this.props. state.bigObject.small1) 哪里需要它?有影响吗?
非常感谢!
没有。一旦你的状态在内存中,它就在内存中。 Redux 只是一个花哨的对象,对象访问在 O(1) 时间内。您要做的就是通过复制您的状态来占用额外的内存和处理时间。更不用说本地和全局状态不同步的可能性。
Redux 和 React 已经针对这个问题进行了优化。 Here's a section of the React docs that covers this.
我正在使用 redux 来管理全局状态和 sagas,以便在 React 本机应用程序中调用异步服务器。
将组件连接到 redux 存储时,将对 redux 状态的调用拆分开来可以提高性能/最小化渲染吗? 例如。 redux store 中的一个大对象由许多小对象组成。 {bigObject : {small1, small2, small3....}} 在 class 的 mapStateToProps 中,分别调用所需的每个较小对象 (small1: state.bigObject.small1) 是更有效,还是只调用一次更好?更大的对象 ( big: state.bigObject)?
同样,创建 redux 状态的本地状态副本(例如 class 的 setState)是一种好习惯,还是直接在组件中调用 redux 状态(例如 this.props. state.bigObject.small1) 哪里需要它?有影响吗?
非常感谢!
没有。一旦你的状态在内存中,它就在内存中。 Redux 只是一个花哨的对象,对象访问在 O(1) 时间内。您要做的就是通过复制您的状态来占用额外的内存和处理时间。更不用说本地和全局状态不同步的可能性。
Redux 和 React 已经针对这个问题进行了优化。 Here's a section of the React docs that covers this.