当前位置: 首页 > 面试题库 >

了解React-Redux和mapStateToProps()

田彬郁
2023-03-14
问题内容

我正在尝试了解react-redux的connect方法及其作为参数的功能。特别是mapStateToProps()

以我的理解,它的返回值mapStateToProps将是一个从状态派生的对象(因为它存在于商店中),其键将作为道具传递给目标组件(应用了connect的组件)。

这意味着目标组件所消耗的状态与存储在商店中的状态可能具有截然不同的结构。

问:可以吗?
问:这是预期的吗?
问:这是反模式吗?


问题答案:

问:Is this ok?
答:是的

问:Is this expected?
是的,这是预期的(如果您正在使用react-redux)。

问:Is this an anti-pattern?
答:不,这不是反模式。

这称为“连接”组件或“使其智能化”。这是设计使然。

它允许您额外花费时间使组件与状态分离,从而增加了代码的模块化。它还允许您将组件状态简化为应用程序状态的子集,实际上,这有助于您遵循Redux模式。

这样考虑:存储应该包含 应用程序的 整个 状态。
对于大型应用程序,它可能包含数十个嵌套在多层中的属性。
您不想每次通话都花很多钱(昂贵)。

没有mapStateToProps或类似的东西,您很想用另一种方法来提高状态/提高性能/简化。



 类似资料:
  • 我读过关于减少捆绑大小的各种回答。首先,我想了解我的13MB捆绑包是怎么回事,所以我安装了Webpack捆绑包大小分析器。它生成了以下输出: 有几件事我不明白: 为什么react会以两种不同的尺寸出现两次? 为什么加起来不到13MB?(大约4.75MB) 这是否意味着我自己的代码只有4KB?(最后一行) 从这棵树可以理解如何保存KBs吗?我的意思是,例如,有没有一种方法可以只使用部分lodash,

  • 目录 为何组件没有被重新渲染、或者 mapStateToProps 没有运行? 为何组件频繁的重新渲染? 怎样使 mapStateToProps 执行更快? 为何不在被连接的组件中使用 this.props.dispatch ? 应该只连接到顶层组件吗,或者可以在组件树中连接到不同组件吗? React Redux 为何组件没有被重新渲染、或者 mapStateToProps 没有运行? 目前来看,

  • Universal React Redux Boilerplate A universal React/Redux boilerplate with sensible defaults. Out of the box, thisboilerplate comes with: Server-side rendering with Express Code splitting with dynamic

  • React-Redux-Enterprise A React-Redux boilerplate for enterprise web applications. Before you start with this boilerplate, please take a few minutes to read this article and see if you really need this

  • Live redux-react-starter This repository contains the minimal app to get started with redux, react, hot-reloading, async function and some other great stuffs. How to yarn 0.18+ must be present on your

  • React/Redux Links Curated tutorial and resource links I've collected on React, Redux, ES6, and more, meant to be a collection of high-quality articles and resources for someone who wants to learn abou